我想要运行一个curl调用但是一旦运行,我想运行另一个到不同的URL,但使用相同的选项。
我可以在不必复制和粘贴选项的情况下运行另一个调用,我需要运行大约5个调用,似乎有一种方法可以实现此目的。我不能同时运行它们,我需要确保从一个结果中获得结果,然后如果满足某个标准,我需要运行另一个。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
答案 0 :(得分:2)
在每个额外请求之前,只需更新网址(使用CURLOPT_URL
选项)。请参阅以下示例中的注释。
// initialize with the first url you want to use
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
// check the result of the first request
if($result == "the content you want")
{
// if the result dictates that you make another request, update the url
curl_setopt($ch, CURLOPT_URL, $url2);
// execute the second request
$result2 = curl_exec($ch);
// do something with $result2
}
// only close curl after you are done making your requests
curl_close($ch);
答案 1 :(得分:1)
如果我没有错误理解。
是的,我总是使用一种方法将1个cURL操作运行到多个URL。
你应该使用:
编辑:方法2无效。
方法1:
<?php
// Arrays
$ch=array();
$url=array();
$result=array();
// ************
$url['1'] = 'http://url1.com';
$url['2'] = 'http://url2.com';
$ch['1'] = curl_init($url['1']);
curl_setopt($ch['1'], CURLOPT_HEADER, true);
curl_setopt($ch['1'], CURLOPT_NOBODY, true);
curl_setopt($ch['1'], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch['1'], CURLOPT_TIMEOUT, 10);
$result['1'] = curl_exec($ch['1']);
curl_close($ch['1']);
$ch['2'] = curl_init($url['2']);
curl_setopt($ch['2'], CURLOPT_HEADER, true);
curl_setopt($ch['2'], CURLOPT_NOBODY, true);
curl_setopt($ch['2'], CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch['2'], CURLOPT_TIMEOUT, 10);
$result['2'] = curl_exec($ch['2']);
curl_close($ch['2'])
?>
方法2
<?php
$url = array(
'http://url1.com',
'http://url2.com'
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch)
?>
在方法1 中,我们使用了$ch
和$url
以及$result
在方法2 中,我们制作了$url