Я использую функцию разрыва, чтобы взорвать тексты в двух частях, и я хочу, чтобы после взрыва я хочу сохранить взорванную часть в текстовом поле, ее работа прекрасна, но для какой-то ситуации она не работает. Вот код. Я хочу {\ "EVERYONE"} в текстовом поле, но только он появляется как {в текстовом поле. Пожалуйста помоги
<?php
$str = "HELLO {\"EVERYONE\"}";
$split=explode(' ', $str, 2);
print_r($split);
echo '<input type="text" style="width:300px;" value="'.$split[1].'">';
?>
Добавьте htmlentities вокруг значения:
<?php
$str = "HELLO {\"EVERYONE\"}"; // double quote, \ is handled as escape sign
$str = 'HELLO {\"EVERYONE\"}'; //single quote, \ is handled as string
$str = "HELLO {\\\"EVERYONE\\\"}"; //escape the escape sign
$split=explode(' ', $str, 2);
print_r($split);
echo '<input type="text" style="width:300px;" value="'.htmlentities($split[1]).'">';
?>
Более подробную информацию о htmlentities можно найти здесь
Я предпочитаю использовать htmlspecialchars для правильного удаления значений по умолчанию html.
@see Как правильно вывести значения формы ввода html формы в php?
echo '<input type="text" style="width:300px;" value="'.htmlspecialchars($split[1]).'">';
должен сделать работу.
Замените строку ввода на
echo '<input type="text" style="width:300px;" value="' . htmlspecialchars($split[1]) . '">';
специальные символы, такие как ¡¢ ¢ ∞§¶, превращаются в маленькие черные бриллианты с вопросительными знаками в них, потому что htmlentities не знают, как обращаться с ними, но htmlspecialchars.
Вы должны использовать,
htmlentities($split[1])
это решит вашу проблему.