Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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 如何将引号(';,";)从特殊字符转换为常规字符,而其他标记保持特殊?_Php_Html_Tags - Fatal编程技术网

Php 如何将引号(';,";)从特殊字符转换为常规字符,而其他标记保持特殊?

Php 如何将引号(';,";)从特殊字符转换为常规字符,而其他标记保持特殊?,php,html,tags,Php,Html,Tags,在我的字符串中有引号(',”)和 htmlspecialchars($str, ENT_QUOTES); 仅将单引号和双引号转换为常规文本。但不幸的是,它也在转换标记,>。因此,即使我 strip_tags("$desc","< b >< font >< i >< u >< br >"); 带标签($desc),“”; 这些允许的标记也显示为常规符号,而不是html标记 总之,我想将单引号和双引号显示为常规文本,并允许标记像

在我的字符串中有引号
(',”)

htmlspecialchars($str, ENT_QUOTES);  
仅将单引号和双引号转换为常规文本。但不幸的是,它也在转换标记
,>
。因此,即使我

strip_tags("$desc","< b >< font >< i >< u >< br >"); 
带标签($desc),“
”;
这些允许的标记也显示为常规
<和>
符号,而不是html标记

总之,我想将单引号和双引号显示为常规文本,并允许标记像html一样工作


谢谢。

为什么不在htmlspecialchars()之前运行strip_tags()

样本:

<?php
$input = '<b>allowed tag</b> " <font>not allowed tag</font>';

// XXX
$tmp = htmlspecialchars($input, ENT_QUOTES);
$result = strip_tags($tmp, '<b>');
var_dump($result);
// string(78) "&lt;b&gt;allowed tag&lt;/b&gt; &quot; &lt;font&gt;not allowed tag&lt;/font&gt;"

// Improved
$tmp = strip_tags($input, '<b>');
$result = htmlspecialchars($tmp, ENT_QUOTES);
var_dump($result);
// string(53) "&lt;b&gt;allowed tag&lt;/b&gt; &quot; not allowed tag"

如果它们是字符串,请尝试:
str_replace(“'”,“,$desc)
它将删除所有
。我不想删除它。我希望它们作为普通文本而不是特殊字符使用。那么,为什么不将“to”替换为