簡體   English   中英

PHP While循環中的cURL僅運行一次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM