У меня возникли проблемы с попыткой распечатать символы < > в 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;