конвертировать fopen в curl? - PullRequest
0 голосов
/ 11 августа 2010

Я недавно изменил серверы, и один из моих сценариев не работает на новом сервере, так как 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;

}



?>

Ответы [ 2 ]

0 голосов
/ 11 августа 2010

Конечно. Вероятно, это должно выглядеть так (не проверено, конечно, могут потребоваться небольшие изменения):

$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);
0 голосов
/ 11 августа 2010

Да, это вполне возможно.Смотрите примеры здесь: http://us.php.net/manual/en/curl.examples-basic.php

...