public function filter($value)
{
$value = (string) $value
// Strip HTML comments first
while (strpos($value, '<!--') !== false) {
$pos = strrpos($value, '<!--')
$start = substr($value, 0, $pos)
$value = substr($value, $pos)
// If there is no comment closing tag, strip whole text
if (!preg_match('/--\s*>/s', $value)) {
$value = ''
} else {
$value = preg_replace('/<(?:!(?:--[\s\S]*?--\s*)?(>))/s', '', $value)
}
$value = $start . $value
}
// Initialize accumulator for filtered data
$dataFiltered = ''
// Parse the input data iteratively as regular pre-tag text followed by a
// tageither may be empty strings
preg_match_all('/([^<]*)(<?[^>]*>?)/', (string) $value, $matches)
// Iterate over each set of matches
foreach ($matches[1] as $index =>$preTag) {
// If the pre-tag text is non-empty, strip any ">" characters from it
if (strlen($preTag)) {
$preTag = str_replace('>', '', $preTag)
}
// If a tag exists in this match, then filter the tag
$tag = $matches[2][$index]
if (strlen($tag)) {
$tagFiltered = $this->_filterTag($tag)
} else {
$tagFiltered = ''
}
// Add the filtered pre-tag text and filtered tag to the data buffer
$dataFiltered .= $preTag . $tagFiltered
}
// Return the filtered data
return $dataFiltered
}
你这个问题我之前做项目的时候也遇到过,你可以从数据入库时入手解决,具体做法就是你可在把数据存入到数据的时候用strip_tags()函数剥离HTML标签,这样你在查询的时候就不会遇到这种情况了,完全都是数据,如果存入数据库的数据必须要有HTML标记的话那入库的时候可以考虑用htmlspacialchars()函数,希望能够帮到你一般我碰到这种问题,是在后台将它转义存储.转义方法你可以写在过虑器中
例如</br>转义成:</br>
我晕。。百度竟然把我转义码以HTML输出了。
&l t /br &g t 去掉空格
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)