call multiple url sequentially with php curl
这个问题也与我以前的帖子有关,所以我分享了上面的链接......
现在,当我尝试在我的网址中追加sessionid执行下面的代码..它没有正确运行..所以回显了网址并获得了以下输出..
3.0971635097876E+183.0971635097876E+1
那么如何用网址附加sid ......
以下是我尝试过的方法..
<?php
$response=3097163509787559940;
$url1 = 'http://192.168.1.220/cgi-bin/controller.tcl?sid='+$response+'&type=inverter&inverter=318002N463';
echo "$url1";
$url2 = 'http://192.168.1.220/cgi-bin/overview.tcl?sid='+$response+'&menuParentId=3';
echo "$url2";
$nodes = array('$url1', '$url2');
$node_count = count($nodes);
$curl_arr = array();
$master = curl_multi_init();
for($i = 0; $i < $node_count; $i++){
$url =$nodes[$i];
$curl_arr[$i] = curl_init($url);
curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($master, $curl_arr[$i]);
}
do {
curl_multi_exec($master,$running);
} while($running > 0);
echo "results: ";
for($i = 0; $i < $node_count; $i++){
$results = curl_multi_getcontent ( $curl_arr[$i] );
echo( $i . "\n" . $results . "\n");
}
echo 'done';
?>
答案 0 :(得分:2)
字符串在PHP
中与点(。)
将+
和.
中的连接字符$url1
替换为url2
$url1 = 'http://192.168.1.220/cgi-bin/controller.tcl?sid='.$response.'&type=inverter&inverter=318002N463';
创建数组时删除引号。如果用单引号括起来,它会将其呈现为字符串而不是变量。
$nodes = array($url1, $url2);
答案 1 :(得分:1)
您需要进行以下3项更改: -
$url1 = "http://192.168.1.220/cgi-bin/controller.tcl?sid=$response&type=inverter&inverter=318002N463";
$url2 = "http://192.168.1.220/cgi-bin/overview.tcl?sid=$response&menuParentId=3";
$nodes = array($url1, $url2);//remove quotes around urls