3
<?php

ini_set('user_agent', 'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1');

echo file_get_contents('http://fr.wikipedia.org/wiki/Brazil', false, $context);

//echo file_get_contents('http://fr.wikipedia.org/wiki/Argentina');

//echo file_get_contents('http://fr.wikipedia.org/wiki/France');

ウィキペディアの回答は、エンコーディングの問題のようなものです (StackOverflow がルールを投稿するため投稿できませんが、スクリプトを実行すると表示されます)。

(等。)

それはブラジルとアルゼンチンです。しかし、他のページ (フランスなど) ではうまく機能します。何が起こっているのか?ちなみに、ページはブラウザでうまく動作します。

4

2 に答える 2

2

最後に、私は問題を見つけました。gzip で圧縮された HTML を受信して​​いました。文字列がバイナリのように見える場合、PHP関数を使用してHTMLを解凍することで問題を解決しました。

cURL は開発者にとって透過的な方法で暗号化を処理するだろうと思っていましたが、同じ問題がありました。おそらくウィキペディアの問題だと思います。

于 2012-06-22T14:58:15.647 に答える
1

これをコンソールから実行している場合は、UTF-8 を使用していることを確認してください (Linux ではそうすべきですが、Windows ではまったく可能かどうかはわかりません)。

Web から取得する場合header('Content-Type: text/html; charset=UTF-8');は、スクリプトの先頭に追加して、ブラウザーに正しいエンコーディングを通知します。

于 2012-06-21T22:52:39.610 に答える