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 字符。

看起来他们这样做的地方,实际上是浏览器在后台默默地将您的字符转换为 URLescaped 字符。

当您将此 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 回答