如何在不执行for循环的情况下增加php

时间:2016-01-02 10:36:06

标签: php curl

我正在使用此代码在PHP中进行多卷曲:

use of deleted function 'Movable::Movable(const Movable&)'

正如您在代码中看到的那样,使用$ch1 = curl_init(); $ch2 = curl_init(); // set URL and other appropriate options curl_setopt($ch1, CURLOPT_URL, 'http://www.example.com/'); curl_setopt($ch1, CURLOPT_HEADER, 0); curl_setopt($ch2, CURLOPT_URL, 'http://www.example.com/'); curl_setopt($ch2, CURLOPT_HEADER, 0); //create the multiple cURL handle $mh = curl_multi_init(); //add the two handles curl_multi_add_handle($mh,$ch1); curl_multi_add_handle($mh,$ch2); $active = null; //execute the handles do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { curl_multi_add_handle添加两个句柄 反正有没有重复代码添加句柄$ ch1和$ ch2? 通常我会做一个for循环i ++,但这不是一个选项。 所以我正在寻找这样的东西:

$mh

2 个答案:

答案 0 :(得分:1)

使用for循环,但使用数组而不是一组具有相同名称的变量,除了最后的数字。

答案 1 :(得分:1)

根据@Quentin的回答,你可以这样做:

$urls = array('http://www.example.com/', 'http://www.example1.com/', 'http://www.example2.com/');
$url_count = count($urls);

$curl_arr = array();
$mh = curl_multi_init();

for($i = 0; $i < $url_count; $i++)
{
    $url = $urls[$i];
    $curl_arr[$i] = curl_init($url);
    curl_setopt($curl_arr[$i], CURLOPT_HEADER, 0);
    curl_multi_add_handle($mh, $curl_arr[$i]);
}
$active = null;
do {
    $mrc = curl_multi_exec($mh, $active);
} while($mrc == CURLM_CALL_MULTI_PERFORM);