2

CURLOPT_URL を使用してページ データを取得しようとしています。そのために、他のページで正常に動作する以下のコードを使用しました (ページがその css / js への相対パスを使用する場合を除いて、それらは読み込まれません)。

function grab_page($site){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40000000);
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($ch, CURLOPT_URL, $site);
    ob_start();
    return curl_exec ($ch);
    ob_end_clean();
    curl_close ($ch);
}               

echo grab_page("$page_to_get");

しかし、ページをロードすると、このようなジブリッシュな画面が返されますが、ソースを表示すると同じようにページ全体が返されます。


ここに画像の説明を入力


私のブラウザからページのソースを見ると、彼らは を使用しているようですがcharset=utf-8"、それが何か関係があるかどうかはわかりません。何か案は ?

4

1 に答える 1

1

呼び出し:

curl_setopt($ch,CURLOPT_ENCODING , "gzip");

エンコーディングがgzipされていることがわかっている場合、またはあなたが述べたように修正します

curl_setopt($ch,CURLOPT_ENCODING , "");

エンコーディング自体のネゴシエーションにcurlをくすぐる必要があります(これがデフォルトではない理由は私を超えています)

于 2013-05-10T17:05:29.773 に答える