Проверка URL с нетрадиционными символами - PullRequest
3 голосов
/ 27 февраля 2020

У меня есть URL-адрес со специальными символами, например:

$url = 'https://example.com/c/ファンタシ.jpg';

Я не могу проверить его с помощью:

var_dump( (filter_var($url, FILTER_VALIDATE_URL)) );

Поскольку он не является действительным URL-адресом в соответствии с RF C:

"Только буквенно-цифровые символы [0-9a-zA-Z], специальные символы" $ -_. +! * '(), "[ не включая кавычки - ред.], а зарезервированные символы, используемые для их зарезервированных целей, могут использоваться без кодировки в URL-адресе "

И я не могу сделать:

urlencode($url);

, потому что это закодирует всю строку с закодированными косыми чертами, двоеточие et c.

Так как мне правильно кодировать $url, чтобы он прошел проверку?

...