2010-08-11 8 views
0

J'ai récemment changé de serveur, et un de mes scripts ne fonctionne pas sur le nouveau serveur, fopen n'étant pas activé?convertir fopen à curl?

Est-il possible de modifier le code suivant pour utiliser la fonction CURL à la place?

Espérons que quelqu'un peut vous aider!

<?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; 

} 



?> 

Répondre

0

Bien sûr. Il devrait probablement ressembler à ceci (non testé bien sûr, pourrait avoir besoin de quelques changements mineurs):

$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);