我正在获取包含blah ^ s字符的数据库信息(我用'^替换',所以我可以识别行中撇号的位置)。我正在检索并使用preg_replace将撇号放回字符串中。它一切正常,直到我尝试使用jquery更新输入文本字段。
$name = preg_replace('/(\^)/', ' ', '\'');
$name = "<input type='text' size='20' id='2' name='2' value='$name'> ";
我用其他所有数据对JSON编码很好。
$json = array(
'name' => $name
);
echo json_encode($json);
这在使用jquery的控制台中返回“blah”。 而不是我的输入文本字段中的“blah's”,而不是我需要的......
有人有什么想法吗?
答案 0 :(得分:1)
查看生成的HTML。您正在使用'
来分隔属性值。所以你正在生成像
value='blah's'
如您所见,该值在h
之后结束。
您必须使用'
的HTML实体。您可以使用htmlentities
:
echo htmlentities($str, ENT_QUOTES);
echo htmlspecialchars($str, ENT_QUOTES);