0

我想使用 cURL 和 PHP 动态获取多个 URL。当我使用单个 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>';
4

1 回答 1

1

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

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

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

于 2012-12-09T17:43:17.737 回答