使用相同选项

时间:2016-08-29 21:02:22

标签: php curl

我想要运行一个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);

2 个答案:

答案 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

的数组