我想使用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>';
答案 0 :(得分:1)
问题是,在您的表单中,您具有相同名称的文本输入。当它传递给curl.php时,它不会作为数组传递。您可以通过在表单中执行以下操作来解决此问题:
<form action="curl.php">
<input type="text" name="urls[]" />
<input type="text" name="urls[]" />
...
</form>
现在,url将作为数组传入,foreach调用将正常工作。