[英]cURL in PHP While Loop only runs once
while($dataR = mysql_fetch_array($data)){
$postcode = str_replace(" ", "+", $dataR['Postcode']);
echo $postcode."<br />";
$oPostcode = $dataR['Postcode'];
// Retrieve the DOM from a given URL
$url = 'http://www.1.com';
$fields = array(
'txtPostCode'=>urlencode($oPostcode)
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
curl_close($ch);
unset($ch);
//close connection
$html = str_get_html($result);
print_r($html);
}
那就是我的代码。 但是,cURL部分仅在第一次运行时-我该怎么办? 我试图了解curl_multi_exec
但找不到简单的答案。
最好将您的cURL请求与循环分开...这样就可以了。
while($dataR = mysql_fetch_array($data)){
$postcode = str_replace(" ", "+", $dataR['Postcode']);
echo $postcode."<br />";
$oPostcode = $dataR['Postcode'];
// Retrieve the DOM from a given URL
$url = 'http://www.1.com';
$fields = array(
'txtPostCode'=>urlencode($oPostcode)
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
// Execute youru cURL here.
$data = array(
'url' => $url,
'fiels' => count($fields),
'field_string' => $fields_string
);
executecURL($data);
$html = str_get_html($result);
print_r($html);
}
function executecURL($data) {
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$data['url']);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POST,count($data['fields']));
curl_setopt($ch,CURLOPT_POSTFIELDS,$data['fields_string']);
//execute post
$result = curl_exec($ch);
curl_close($ch);
unset($ch);
//close connection
}
尝试取消设置 $ field和$ field_string
unset($fields);
unset($fields_string);
重用之前
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.