2010-08-11 157 views
0

我最近改变了服务器,并且我的一个脚本没有在新服务器上运行,因为fopen没有启用?转换fopen卷曲?

是否可以改变下面的代码来改为使用CURL函数?

希望有人能帮助!

<?php 
$postToFileName = 'http://www.somesite.com/postfile.aspx'; 
$postArr = array(

'NM' => $row['Lead_Name'], 

'EM' => $row['Lead_Email'], 

'PH' => $row['Lead_Tel'], 

); 

$opts = array(

'http'=>array(

'method' => 'POST', 

'header' => "Content-type: application/x-www-form-urlencoded\r\n", 

'content' => http_build_query($postArr) 

) 

); 

$context = stream_context_create($opts); 

$fp = fopen($postToFileName, 'r', false, $context); 

$returnedMessage = ''; 

while (!feof($fp)) { 

$returnedMessage .= fgets($fp); 

} 

fclose($fp); 

if ($returnedMessage == '') { 

$returnedMessage = 'No Message'; 

} else if (strlen($returnedMessage) > 250) { 

$returnedMessage = substr($returnedMessage,0,250); 

} 

$returnedMessage = preg_replace("/[\r\n]/", '', $returnedMessage); 

$returnedMessage = mysql_real_escape_string($returnedMessage, $sql); 

$q = "UPDATE leads SET Data_Sent = '$returnedMessage' WHERE Lead_ID = $id"; 

mysql_query($q, $sql); 

array_push($leadsSent, $id); 

} 

} 

mysql_close($sql); 

return $leadsSent; 

} 



?> 

回答

0

当然。它应该看起来像这样(当然没有测试,可能需要一些小的更改):

$postToFileName = 'http://www.somesite.com/postfile.aspx'; 
$postArr = array(
    'NM' => $row['Lead_Name'], 
    'EM' => $row['Lead_Email'], 
    'PH' => $row['Lead_Tel'], 
); 

$ch = curl_init($postToFileName); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postArr); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$returnedMessage = curl_exec($ch); 
curl_close($ch);