mysql数据库某字段有HTML标签,怎样除去HTML显示?用SELECT语句显示,不要update字段内容。

mysql数据库某字段有HTML标签,怎样除去HTML显示?用SELECT语句显示,不要update字段内容。,第1张

以下代码是从zend framework中某个对象摘出来的,自己调试一下吧。因为原始功能允许设置那些标签是允许使用,所以有一部分你应该用不到。自己分析下咯

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 去掉空格


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8478182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存