У меня возникли проблемы с попыткой распечатать символы <
>
в HTML с помощью PHP.
Я добавляю строку « <machine>
» к переменной.
Пример:
$output .= " <machine> "; echo $output;
Я попытался использовать escape-последовательности, но это не помогло. Любой совет?
>
= >
<
= <
Или вы можете использовать htmlspecialchars
.
$output .= htmlspecialchars(" <machine> ");
Если вы выводите HTML, вы не можете просто использовать <
и >
: вы должны использовать соответствующие объекты HTML : <
и >
Если у вас есть строка в PHP и вы хотите автоматически заменить эти символы соответствующими объектами HTML, вас будет интересовать htmlspecialchars()
(цитирование) :
Выполненные переводы:
'&'
(амперсанд) становится'&'
'"'
(двойная кавычка) становится'"'
когдаENT_NOQUOTES
не установлен."'"
(одинарная кавычка) становится'''
только когда установленENT_QUOTES
.'<'
(меньше) становится'<'
'>'
(больше) становится'>'
В вашем случае часть кода, такая как эта:
$ output = "";
echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8');
Вы получите следующий HTML-код в качестве вывода:
<machine>
И на всякий случай, если вы хотите кодировать больше символов, вы должны взглянуть на htmlentities()
.
Ваша проблема не в PHP, а скорее в том, что <
и >
используются в HTML. Если вы хотите, чтобы они отображались в браузере, вы, вероятно, захотите распечатать их версии с сохраненными сущностями:
<
>
is >
Вы также можете использовать htmlspecialchars()
для автоматического их преобразования:
echo htmlspecialchars("<machine>");
Вам нужно включить их, например <
и >
– см. функции htmlentities()
или htmlspecialchars()
.
echo htmlentities($output);
или
echo htmlspecialchars($output);
Если вы не хотите беспокоиться о том, чтобы вручную перемещаться по вашей строке и заменять объекты.
Символы <и> должны отображаться в источнике HTML, но «<машина>» интерпретируется как тег XML. Используйте htmlentities () для преобразования всех специальных символов в String в их эквиваленты HTML или используйте «& lt; machine & gt;»
Решение:
$output .= " <machine> "; $output = htmlentites($output); echo $output;