Остановить оценку DOMXPath от преобразования специальных символов - PullRequest
0 голосов
/ 06 февраля 2019

Если вы запустите эту оценку DOMXPath для URL со специальными символами (я понимаю, что это технически недействительный URL, но некоторые веб-сайты имеют их в любом случае):

$a = '<a href="http://example.org/diseño"></a>';
$path = new DOMXPath( @DOMDocument::loadHTML( $a ) );
$href = $path->evaluate( 'string(//a/@href)' );

var_dump( $href );
// http://example.org/diseño

Есть ли способ получить строку с"правильный" href - как со специальным символом?

http://example.org/diseño

Или DOMXPath действительно работает правильно, потому что URL не могут иметь специальные символы?Если да, то какая самая чистая альтернатива для получения href из строки, содержащей специальные символы?

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете просто закодировать возвращаемое значение из XPath ...

echo utf8_decode($href);

, что дает ...

http://example.org/diseño
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...