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>

これで、URLが配列として渡され、foreach呼び出しが正常に機能します。

于 2012-12-09T17:43:17.737 に答える