我有一个隐藏字段,用于存储从数据库检索的值,如下所示:
echo '<input type="hidden" value="'.$str.'">';
问题是,如果$str包含双引号文本,肯定会导致浏览器显示出现问题。但在 PHP 中使用转义字符\是徒劳的。我也尝试过这个:
$str = str_replace('"',"'",$str);
然后我必须在客户端中将每个单引号替换为双引号(执行相反的操作):
str = str.replace(/'/g,'"');
虽然它对我来说工作得很好,但它仍然没有消除错误。例如,如果数据库中的原始字符串包含单引号('),它也会在客户端中被双引号(“)替换,这是意想不到的。那么,是否有任何替代解决方案来解决这个问题,或者真的有任何解决方案吗?浏览器的转义字符可以放在隐藏字段的双引号中吗?
最佳答案
您可以使用 htmlentities 来转义值
http://php.net/manual/en/function.htmlentities.php
例如
echo '<input type="hidden" value="'.htmlentities($str).'">';
关于javascript - 除了 PHP 或 JavaScript 之外,浏览器还有转义字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24522745/