How to open url having Arabic text using php file-

2020-07-27 03:08发布

问题:

I want to get html from a URL having some Arabic like

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

using php. I tried with

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

but it is giving the following error

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

Please help.

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

is for reference only, doesn't exist.

回答1:

URLs can't contain non-ASCII characters.

Where it seems that they do, it's in fact the browser silently converting your characters into URLescaped ones in the background.

When you paste this URL into your browser:

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

will in reality look like this:

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 doesn't have this ability to silently convert characters; you'll have to do it manually. To do that, run PHP's urlencode() over the URL before making the call.