2016-10-25 10 views
1

まあ、私は特定のWebページからHTMLを取得しようとしています。このWebページには、そのURLにUTF-8文字を持っており、PHPは私にこのエラーを与えている:utf-8文字を含むurlでfile_get_content()が動作しない

Warning: file_get_contents(http://enem.descomplica.com.br/gabarito/enem/2015/dia-1-2a-aplicacao/questoes/dubai-é-uma-cidade-estado-planejada-para/): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp2\htdocs\test\index.php on line 102

ライン102は、次のとおりです。私はこの問題は、E「と実際にあることを確信してい

if($content = file_get_contents($this->link)){ 

URLにUTF8文字が含まれていないURLでこの関数を使用しようとすると、そのURLが機能します。

は具体的には、働いていたUTF-8文字なしのURLは次のとおりです。

http://enem.descomplica.com.br/gabarito/enem/2015/dia-1-2a-aplicacao/questoes/os-nossos-ancestrais-dedicavam-se/

誰も私が何を行うことができます知っていますか?

ありがとうございます!

+0

これにカールを使用しようとしていますか? – Broatcast

+0

はい、それは私にエラーを与えることはありませんが、それも動作しません – MyName

+0

ここを見て[どのようにUTF-8エンコーディングでフォームデータをカールを使用して行うのですか](http://stackoverflow.com/questions/12489530/how -do-i-post-form-data-with-utf-8-encoding-using-curl)およびここでは[curl save as utf-8](http://stackoverflow.com/questions/10172327/linux)を参照してください。 -curl-save-as-utf-8) – Broatcast

答えて

0

私の想像以上に簡単な答えでした。

$url = "http://enem.descomplica.com.br/gabarito/enem/2015/dia-1-2a-aplicacao/questoes/dubai-" . rawurlencode("é") . "-uma-cidade-estado-planejada-para/"; 

は、今では動作します:

私は次のように唯一のUTF-8文字をエンコードするための方法 rawurlencodeを使用する代わりに、生のURL

http://enem.descomplica.com.br/gabarito/enem/2015/dia-1-2a-aplicacao/questoes/dubai-%C3%A9-uma-cidade-estado-planejada-para/

を使用しての

+0

あなたはURL全体をエンコードすることができます。 –

関連する問題