【问题标题】:How to increment in php without doing a for loop如何在不执行 for 循环的情况下增加 php
【发布时间】:2016-01-02 10:36:05
【问题描述】:

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

$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 将两个句柄添加到$mh 无论如何添加句柄 $ch1 和 $ch2 而不重复代码? 通常我会做一个 for 循环 i++ 但这不是一个选项。 所以我正在寻找这样的东西:

curl_multi_add_handle($mh,[$ch1,$ch2]); ??

【问题讨论】:

    标签: php curl


    【解决方案1】:

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

    【讨论】:

    • 你的意思是这样的:for ($x = 0; $x <= 3; $x++) { curl_multi_add_handle($mh,$ch[$x]); } 它不起作用
    • 我尝试了一个不同的版本,它也不起作用:$ar = array('$ch1','$ch2'); for ($x = 0; $x <= count($ar); $x++) { curl_multi_add_handle($mh,$ar[$x]); } 随意详细说明
    • 你传递的是字符串而不是句柄! phpied.com/simultaneuos-http-requests-in-php-with-curl 有一个更完整的例子。
    • 啊,我明白了,非常感谢,感谢您的链接
    【解决方案2】:

    根据@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);
    

    【讨论】:

    • 感谢您的宝贵时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    相关资源
    最近更新 更多