如何动态获取多个URL

时间:2012-12-08 07:03:18

标签: curl

我想使用cURL和PHP动态获取多个URL。当我使用单个URL尝试此操作时,它可以工作,但不适用于多个URL。请帮忙。

我正在使用表单发送网址:

$urls = $_POST["urls"];
require_once('simple_html_dom.php');
$useragent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';

foreach ($urls as $url) 
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($curl, CURLOPT_USERAGENT, $useragent); 
$str = curl_exec($curl);
curl_close($curl);
}

$html= str_get_html($str);
foreach($html->find('span.price') as $e)
    echo  $e->innertext . '<br>';

1 个答案:

答案 0 :(得分:1)

问题是,在您的表单中,您具有相同名称的文本输入。当它传递给curl.php时,它不会作为数组传递。您可以通过在表单中​​执行以下操作来解决此问题:

<form action="curl.php">
    <input type="text" name="urls[]" />
    <input type="text" name="urls[]" />
    ...
</form>

现在,url将作为数组传入,foreach调用将正常工作。