0

ページのhtmlを取得したいと思います。グーグルで検索した後、次のコードが見つかりましたが、これは機能していません。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$passwd");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
echo $output;

編集:次のようなもの:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '');
curl_setopt($ch, CURLOPT_POSTFIELDS,'username='.urlencode($username).'&passwd='.urlencode($passwd));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/my_cookies.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_setopt($ch, CURLOPT_REFERER, "");
$output = curl_exec($ch);
    echo $output

これはターゲットページを表示するだけで、ログインせず、html コードも返しません。

編集 2: $data = array('username' => $username, 'passwd' => $passwd); で試してみました。および curl_setopt($ch, CURLOPT_POSTFIELDS,$data); これは上記と同じ + エラーを示しています: Request Entity Too Large

4

1 に答える 1

2

そのページは HTTP 基本認証を使用していません。

フォームを送信すると送信されるものと一致するように HTTP 要求を作成する必要があります。次に、応答を処理する必要があります (おそらく Cookie の保存が必要になります)。

于 2012-06-21T13:22:48.303 に答える