php中的explode函数,使用explode后如何在文本框中保留数据?

Explode function in php , how to keep data in text box after using explode?

我正在使用爆炸功能将文本分成两部分,我想要的是在爆炸后我想将爆炸部分保留在文本框中,它工作正常但在某些情况下它不起作用。这是代码。我想要 {\"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 的更多信息here

我更喜欢使用 htmlspecialchars 来正确转义 html 默认值。

@见How to properly escape html form input default values in php?

将您的输入行替换为

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

像 ¡™£¢∞§¶ 这样的特殊符号会变成带有问号的黑色小菱形,因为 htmlentities 不知道如何处理它们,但 htmlspecialchars 可以。

你应该使用,

htmlentities($split[1])

这将解决您的问题。