Php 使用htmlspecialchars,但允许<;a href=";URL"></a>;
使用htmlspecialchars,但允许Php 使用htmlspecialchars,但允许<;a href=";URL"></a>;,php,Php,使用htmlspecialchars,但允许 额外的空格也应该有效,比如
额外的空格也应该有效,比如
现在我可能需要
$pureHTML
上的preg\u replace
,但是preg\u replace
应该是什么?或者你推荐使用
我想只允许href属性使用锚定标记对。单击后,不允许使用目标属性。我认为您需要函数
$pureHTML = strip_tags($html, '<a>');
$pureHTML=strip_标记($html,”);
我认为您需要功能
$pureHTML = strip_tags($html, '<a>');
$pureHTML=strip_标记($html,”);
我不确定您是否可以在一次替换中获得此功能,因为您必须匹配并替换“',$pureHTML);
基本上,它匹配转义形式的
()
,允许每个部分之间留有空格(“p>我不确定您是否可以在一次替换中得到它,因为您必须匹配并替换“,$pureHTML”);
基本上,它匹配转义形式的
()
,允许每个部分之间有空格(也包括你需要使用正则表达式,因为你没有正确地框定你的问题。他希望htmlspecialchars是一个字符串,但不让锚点被转义。好的,我编辑了我的问题,再多一些信息…或者单词会有用。你需要使用正则表达式没有正确地框定你的问题。他想要htmlspecialchars一个字符串,但要防止锚点被转义。好的,我已经编辑了我的问题
$pureHTML = htmlspecialchars($dirtyHTML, ENT_NOQUOTES);
preg_match_all('/(<\s*a)\s*(\w+="[\w:\/@#%_\-&\.]+")\s*(>)/i', $pureHTML, $matches, PREG_SET_ORDER);
foreach($matches as $match) {
$pureHTML = str_replace($match[0], "<a " . $match[2] . ">", $pureHTML);
}
$pureHTML = preg_replace('/(<\/\s*a\s*>)/i', '</a>', $pureHTML);