2

アラビア語のような URL から html を取得したい

http://www.example.com/2013/07/31/الاختبار.html

phpを使用しています。で試しました

file_get_html("http://www.example.com/2013/07/31/الاختبار.html")

しかし、次のエラーが発生しています

Warning: file_get_contents(http://www.example.com/2013/07/31/الاختبار.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in filename.php

助けてください。

http://www.example.com/2013/07/31/الاختبار.html

参考程度で、存在しません。

4

1 に答える 1

5

URLに非 ASCII 文字を含めることはできません。

実行しているように見えますが、実際にはブラウザがバックグラウンドでユーザーの文字を URL エスケープされた文字に静かに変換しています。

この URL をブラウザに貼り付けると、次のようになります。

http://www.example.com/2013/07/31/الاختبار.html

実際には次のようになります。

http://www.example.com/2013/07/31/%D8%A7%D9%84%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1.html

PHP には、文字を黙って変換するこの機能はありません。手動で行う必要があります。urlencode()これを行うには、呼び出しを行う前に、URL に対してPHP を実行します。

于 2013-07-31T07:08:01.673 に答える