Строка PHP не допускает символы <и> - PullRequest
5 голосов
/ 21 ноября 2011

В моем коде есть строка согласно следующему примеру:

<?php
$find = '<tag';
$string = 'blah blah <tag=something>';
?>

Достаточно просто, но когда я пытаюсь повторить строки, им не нравятся символы <или>. Все, что получено, это:

бла-бла

Итак, я предполагаю, что мне нужно экранировать эти символы, чтобы заставить их работать в PHP, но я точно не знаю, как именно. Я использую это для системы шаблонов, поэтому в HTML-файл можно включить файл с помощью:

<include="filename.html">

Так что мне не нужно показывать символы <и> на экране в любое время, мне просто нужно прочитать файл, найти экземпляры этих тегов и сделать немного магии. У меня есть вся эта часть работы, но это просто любая строка, которая содержит больше / меньше, чем операторы, которые, кажется, не работают нормально.

Есть идеи?

Ответы [ 4 ]

13 голосов
/ 21 ноября 2011

С помощью PHP вы можете генерировать разметку HTML, поэтому вам нужно найти способ различать символы элемента HTML (<&>).В HTML существует специальная последовательность символов, которые называются HTML-сущностями .Они описаны с амперсандом, своего рода сокращением и заканчиваются точкой с запятой.

Вот несколько примеров:

&gt;     : > (greater-than)
&lt;     : < (less-than)
&amp;    : & (ampersand)
&raquo;  : » (right angle quote marks)
&eacute; : é (e acute)

Почти все символы могут быть представлены такими объектами, ноэто быстро становится утомительным.Вам нужно запомнить только символы <и>, а также URL-адреса & для.

Ваш код должен быть переписан следующим образом, если вы намеревались показать знаки «меньше / больше».

<?php
$find = '&lt;tag';
$string = 'blah blah &lt;tag=something&gt;';
?>

Как упоминалось в других ответах, вы можете использовать функцию htmlspecialchars() для преобразования символов в переменную (например, из пользовательского ввода).

<?php echo htmlspecialchars($string); ?>

отобразит blah blah <tag=something> для просмотра ввеб-браузер.Иначе, если вы используете PHP в командной строке, например, вам не нужно использовать эту функцию.

4 голосов
/ 21 ноября 2011

Использование htmlspecialchars ()

echo htmlspecialchars('string you want to echo');
4 голосов
/ 21 ноября 2011

Вы должны использовать символы HTML, чтобы избежать его превращения в HTML.

так:

echo htmlspecialchars("<hello>");
1 голос
/ 21 ноября 2011

Вы можете использовать функцию htmlspecialchars , чтобы убрать <скобки .. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...