以下是一个示例:
$allowedPart = "<a href=\'http://alink.com\'></a>";
$unsafePart = "<h1>A title</h1>";
$unsafePart .= "<script>alert(\'a script!!!\');</script>";
$unsafeString = $allowedPart . $unsafePart;
$allowed = array("a"=>array(
"href"=>array()
));
$sanitizedString = wp_kses($unsafeString, $allowed);
$sanitizedString
应等于
$allowedPart
, 但出了点问题
$sanitizedString
保持不变
$unsafeString
.
怎么了?
==========================
抱歉,保存到数据库后,我location.reload()
, 因此,在textarea中保留了原始内容,但在数据库中,该值为almost 对的此次要问题通过以下方式解决:
window.location.href = window.location.href;
但是有一个问题,\'href\' disappears too, 为什么?
例如
<a href=\'http://alink.com\'>Link</a>
成为<a>Link</a>
尝试以下操作:$allowed = array(
\'img\'=>array(
\'src\'=>array(),
));
<img src=\'img.png\' />
成为<img />
这就好像wp\\u kses()将子数组中的所有属性(如href或src)识别为不允许的,从而过滤它们及其内容。
==========================
用双引号代替单引号似乎可以解决问题。
$allowed = array(
\'img\'=>array(
\'src\'=>array(),
));
<img src="img.png" />