Страницы

Поиск по вопросам

суббота, 13 июля 2019 г.

парсинг кириллических ссылок PHP

Как парсить подобные ссылки:

пробовал с urlencode и rawurlencode, iconv - ничего не помогает


Ответ

Нельзя просто взять ссылку и пропустить ее целиком через urlencode() или rawurlencode(). На выходе вы получите уже не ссылку.
Для вашего случая нужно выделить из ссылке path, разбить его на составляющие, их прогнать через функцию rawurlencode() и собрать все назад.
Пример:
$arr = parse_url('http://synonymonline.ru/П/прекрасный'); $link = $arr['scheme'] . '://' . $arr['host'] . implode('/', array_map('rawurlencode', explode('/', $arr['path']) ) ); echo file_get_contents($link);
P.S. Если у вас домен будет содержать символы отличные от латинских, то его придется переводить в формат IDNA ASCII с использованием idn_to_ascii()

Комментариев нет:

Отправить комментарий