Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php在html元素内打印特殊字符';s属性_Php_Html_Escaping - Fatal编程技术网

通过php在html元素内打印特殊字符';s属性

通过php在html元素内打印特殊字符';s属性,php,html,escaping,Php,Html,Escaping,假设$string=AXèdfdèsèdsè'/\”(实际上,$string是从数据库分配的这个值) 所以当我打印以下内容时 echo "<option value='". htmlspecialchars($string) ."'>".$string."</option>"; echo.“$string.”; 我得到输出 <option \&quot;'="" value="AX èdfdfdèsèdsè">AX èdfdfdèsèdsè'/\"

假设
$string=AXèdfdèsèdsè'/\”
(实际上,
$string
是从数据库分配的这个值)

所以当我打印以下内容时

echo "<option value='". htmlspecialchars($string) ."'>".$string."</option>";
echo.“$string.”;
我得到输出

<option \&quot;'="" value="AX èdfdfdèsèdsè">AX èdfdfdèsèdsè'/\"</option>

您应该在第二次使用$string时使用htmlspecialchars,以防止用“破坏html。另一种答案是使用
htmlspecialchars($value,entu QUOTES)
,因此基本上

echo "<option value='". htmlspecialchars($value,ENT_QUOTES)."'>".($value)."</option>";
echo”“($value)。”;
默认情况下,
htmlspecialchars($value)
htmlspecialchars($value)
转换单引号
,除非明确设置
ENT\u quotes
标志。

echo'',htmlspecialchars($string),'';
echo '<option value="', htmlspecialchars($string), '">', htmlspecialchars($string), '</option>';

除非你告诉它,否则PHP不会逃避任何东西

不能复制它。输出与预期一样:
PHP本身不会破坏初始属性=语法。也许可以查看原始源代码,而不是通过开发人员工具等。也可以使用
entu QUOTES
来转义单引号,如果要转义重音字母,还可以使用
htmlentities()
。并确保正确的字符集。最后一句话的可能重复是正确的,并且这样说……第二次使用
htmlspecialchars()
并不重要。由于单引号的缘故,它实际上是在第一篇文章中突破的。但这是一个建议,因为您将从DB获得其他字符串-然后可能会有问题。。。
echo "<option value='". htmlspecialchars($value,ENT_QUOTES)."'>".($value)."</option>";
echo '<option value="', htmlspecialchars($string), '">', htmlspecialchars($string), '</option>';