我希望从包含某些阿拉伯语的网址获取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
仅供参考,不存在。
答案 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()
。