echo + htmlentities не работает в принципе? - PullRequest
0 голосов
/ 02 января 2019

У меня есть этот код:

$title = 'Alguém';
<h1><?php echo htmlentities($title, \ENT_QUOTES, 'UTF-8', false); ?></h1>

PS: это всего лишь пример, в моем текущем коде я получаю значение $title из своей базы данных.

результат, который можно увидеть на веб-странице:

<h1>Alguém</h1>

И результат, который можно увидеть на view-source::

<h1>Algu&eacute;m</h1>

Почему этопроисходит?Я правильно использую htmlentities?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

Ваш код работает правильно. htmlentities преобразует html-сущности в определенную последовательность символов, которую ваш браузер может интерпретировать как сущность, которую вы хотите отобразить в вашем браузере. Это сделано для предотвращения запуска вредоносного кода в вашем скрипте.

Как пример:

Без использования html-сущностей эта строка кода будет работать. Ваш браузер видит строку кода как:

<script>alert("I just hacked your html")</script>

Когда вы очищаете ту же строку кода с помощью htmlentities(), она заменяет все сущности определенной серией символьных представлений, которые браузер интерпретирует как сущность. Вот что выводится в браузер.

&lt;script&gt;alert(&quot;I just hacked your html&quot;)&lt;

Этот скрипт не будет запускаться как javascript в вашем браузере.

Вот ссылка, которую вы можете прочитать, которая даст вам дополнительную информацию. В Google есть много информации, которая обрисовывает это в общих чертах.

HTML-сущности

Вот список html-сущностей: Список объектов

Надеюсь, это поможет.

0 голосов
/ 02 января 2019

эхо htmlentities ($ title, ENT_QUOTES);

...