Функция разнесения в PHP, как сохранить данные в текстовом поле после использования разнесения?

1

Я использую функцию разрыва, чтобы взорвать тексты в двух частях, и я хочу, чтобы после взрыва я хочу сохранить взорванную часть в текстовом поле, ее работа прекрасна, но для какой-то ситуации она не работает. Вот код. Я хочу {\ "EVERYONE"} в текстовом поле, но только он появляется как {в текстовом поле. Пожалуйста помоги

<?php
 $str   = "HELLO   {\"EVERYONE\"}";
 $split=explode(' ', $str, 2);
 print_r($split);
 echo '<input type="text" style="width:300px;" value="'.$split[1].'">';
?>
  • 0
    Всегда проверяйте исходный код в вашем браузере!
Теги:
explode

4 ответа

0
Лучший ответ

Добавьте 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 можно найти здесь

  • 0
    Спасибо, это работает, но \ все еще не приходит в текстовое поле
  • 0
    Потому что они сбежали. См редактировать для получения дополнительной информации
Показать ещё 2 комментария
0

Я предпочитаю использовать htmlspecialchars для правильного удаления значений по умолчанию html.

@see Как правильно вывести значения формы ввода html формы в php?

  • 0
    Так что в вашем случае, echo '<input type="text" style="width:300px;" value="'.htmlspecialchars($split[1]).'">'; должен сделать работу.
0

Замените строку ввода на

 echo '<input type="text" style="width:300px;" value="' . htmlspecialchars($split[1]) . '">';

специальные символы, такие как ¡¢ ¢ ∞§¶, превращаются в маленькие черные бриллианты с вопросительными знаками в них, потому что htmlentities не знают, как обращаться с ними, но htmlspecialchars.

  • 0
    Это из-за кодировки.
  • 0
    Ах, ладно, передавая третий аргумент как UTF-8 (если он не задан по умолчанию), он работает в обоих случаях.
Показать ещё 1 комментарий
0

Вы должны использовать,

htmlentities($split[1])

это решит вашу проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню