Подтвердить что ты не робот

Печатать меньше и больше символов в PHP

У меня возникают проблемы с попыткой распечатать символы < > в HTML с помощью PHP.

Я добавляю строку "<machine>" к переменной.

Пример:

$output .= " <machine> ";
echo $output;

Я попытался использовать escape-последовательности, но это не помогло. Любые советы?

4b9b3361

Ответ 1

&gt;= >
&lt;= <

Или вы можете использовать htmlspecialchars.

$output .= htmlspecialchars(" <machine> ");

Ответ 2

Если вы выводите HTML, вы не можете просто использовать < и >: вы должны использовать соответствующие HTML-объекты: &lt; и &gt;


Если у вас есть строка в PHP и вы хотите автоматически заменить эти символы соответствующими HTML-сущностями, вас заинтересует функция htmlspecialchars() (цитирование):

Выполненные переводы:

  • '&' (амперсанд) становится '&amp;'
  • '"' (двойная кавычка) становится '&quot;', когда ENT_NOQUOTES не набор.
  • "'" (одинарная кавычка) становится '&#039;' только тогда, когда ENT_QUOTES набор.
  • '<' (меньше чем) становится '&lt;'
  • '>' (больше чем) становится '&gt;'


В вашем случае часть кода, подобная этой:

$ output = "";

echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8');

Получит следующий HTML-код в качестве вывода:

 &lt;machine&gt; 


И, на всякий случай, если вы хотите кодировать больше символов, вам следует взглянуть на функцию htmlentities().

Ответ 3

Ваша проблема не в PHP, а скорее в том, что < и > используются в HTML. Если вы хотите, чтобы они отображались в браузере, вы, вероятно, захотите распечатать свои версии с сохраненными сущностями:

  • < &lt;
  • > &gt;

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

echo htmlspecialchars("<machine>");

Ответ 4

Вам нужно включить их, например. &lt; и &gt; - см. функции htmlentities() или htmlspecialchars().

Ответ 5

echo htmlentities($output);

или

echo htmlspecialchars($output);

Если вы не хотите беспокоиться о том, чтобы вручную перебирать строку и заменять сущности.

Ответ 6

используйте "htmlspecialchars_decode()"

например

<?php 
$a= htmlspecialchars('<?php ');
$a=$a.htmlspecialchars('echo shell_exec("ipconfig"); ');
$a=$a.htmlspecialchars('?>');

echo htmlspecialchars_decode($a);
?> 

Ответ 7

и > символы должны отображаться в источнике HTML, но "<machine> " интерпретируется как XML-тег. Используйте htmlentities() для преобразования всех специальных символов в String в их эквиваленты HTML или используйте "& lt; machine & gt;"

Решение:

$output .= " <machine> ";
$output = htmlentites($output);
echo $output;