вывод HTML-тегов - PullRequest
       4

вывод HTML-тегов

1 голос
/ 25 декабря 2011

Я хочу буквально выводить, с эхо, HTML-теги.Сначала код был таким:

$image = '[img]'."image_url".'[/img]<BR>';

, но это не сработало, потому что вывод был:

* [img] image_url [/ img] *

, а затемперейти на новую строку.

Тогда я нашел решение:

$image = '[img]'."image_url".'[/img]&ltBR&gt';

Мой вопрос: почему одинарные кавычки не выводят строку в буквальном смысле, как я думал, и есть ли другой способтак что мне не нужно писать все эти &lt и &gt?

Ответы [ 4 ]

6 голосов
/ 25 декабря 2011

Ваша проблема связана с фундаментальным неправильным пониманием того, как работают PHP и HTML. Кавычки, являющиеся частью синтаксиса PHP, не могут влиять на то, как браузер интерпретирует строку в кавычках, потому что браузер никогда не видит строку в кавычках. Кавычки исчезают при выполнении кода PHP, и в браузер отправляется только вывод вашего сценария PHP.

Тем не менее, кавычки не предназначены для управления интерпретацией тегов HTML внутри строк в любом случае. Стиль кавычек о escape-последовательностях, таких как \n и \t; одинарные кавычки не поддерживают escape-последовательности (кроме \'), а двойные кавычки интерпретируют их как буквальные новые строки / табуляции / и т. д. Ни один из стилей цитирования не имеет ничего общего с угловыми скобками и тегами HTML.

Если вы хотите, чтобы браузер отображал буквальные символы больше и меньше знаков, вы должны отправить браузеру закодированные HTML-сущности &gt; и &lt; соответственно. Вы можете сделать это, вручную выводя строки, такие как echo "&gt";, или, более часто, используя одну из функций PHP, специально предназначенных для кодирования сущностей HTML, найденных в строках:

echo htmlspecialchars("x <= y <= z"); # outputs x &lt;= y &lt;= z
echo htmlspecialchars("<br>"); # outputs &lt;br&gt;
2 голосов
/ 25 декабря 2011

Это не зависит от кавычек. Он будет печатать его как есть (HTML-теги), пока вы не преобразуете его в HTML-объекты. См. htmlentities .

0 голосов
/ 25 декабря 2011

Вы можете сделать htmlspecialchars('<BR>').

0 голосов
/ 25 декабря 2011

HTML использует <>, чтобы пометить теги не [], и вы должны передать URL как атрибут src.

$image = '<img src="'."image_url".'" /><BR>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...