如何使用php file-get-contents函数打开具有阿拉伯文本的URL

时间:2013-07-31 07:06:09

标签: php html-parsing

我希望从包含某些阿拉伯语的网址获取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

仅供参考,不存在。

1 个答案:

答案 0 :(得分:5)

网址can't contain non-ASCII characters.

它们似乎在哪里,实际上是浏览器在后台默默地将您的角色转换为URLescaped的角色。

将此网址粘贴到浏览器中时:

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没有这种静默转换字符的能力;你必须手动完成它。要做到这一点, 在拨打电话之前,先在网址上运行PHP的urlencode()