Как открыть URL-адрес с арабским текстом с помощью функции php file-get-contents


Я хочу получить html-код с URL-адреса, содержащего некоторые арабские слова, такие как

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

Только для справки, не существует.

Author: laalto, 2013-07-31

1 answers

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 не имеет возможности автоматически конвертировать символы; вам придется делать это вручную. Для этого запустите PHP urlencode() по URL-адресу перед выполнением вызова.

 5
Author: Pekka 웃, 2017-05-23 10:25:25