mysql数据库某字段有HTML标签,怎样除去HTML显示?用SELECT语句显示,不要update字段内容。
已经解决,{dede:field.bodyfunction=Html2text(@me)/}可以过滤HTML,不过功能不是很精确...
已经解决,{dede:field.body function=Html2text(@me)/}可以过滤HTML,不过功能不是很精确
展开
3个回答
展开全部
以下代码是从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
// tag; either 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;
}
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
// tag; either 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;
}
展开全部
既然是除去 那当然得update.
建议你用程序写。 先显示出来。再用程序去掉html 再update。
建议你用程序写。 先显示出来。再用程序去掉html 再update。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select replace(字段名,'HTML','') from 表名
这个意思么?
这个意思么?
更多追问追答
追问
是除去所有HTML标签,例如我有
,显示 :我有,你的只是除去html吧
追答
这个貌似仅靠一个单纯的sql语句搞不定
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询