php输出内容出现html标签的问题
我从数据库中读取数据的时候,结果是连html标签都出来了,<FONTface=宋体>美丽梦幻的插画作品</FONT>怎么去掉...
我从数据库中读取数据的时候,结果是连html标签都出来了,<FONTface=宋体>美丽梦幻的插画作品</FONT>怎么去掉
展开
3个回答
展开全部
应该是你的数据在插入到数据库前或者是数据被读出来之后,被函数“htmlspecialchars”把“<>”这两个标记给转换成html代码即“<>”
解决办法是,你在网站的程序那修改,就是要先看一下,是在哪个地方把数据转换掉的,那在那里把那个函数去掉就行了,像你这种情况的话应该是在插入数据之前就已经被转换了……先把函数去掉,然后再更新一下数据就行了但是,这样子操作的话会有一个问题,就是如果你的数据里有双引号的话那么你的网页就会出现茬子,所以在读出来的数据那要加上“addSlashes”函数,其作用是在“双引号”或单“引号前”加“\”把那些引号变成转义字符,这样子页面就不会有问题了
解决办法是,你在网站的程序那修改,就是要先看一下,是在哪个地方把数据转换掉的,那在那里把那个函数去掉就行了,像你这种情况的话应该是在插入数据之前就已经被转换了……先把函数去掉,然后再更新一下数据就行了但是,这样子操作的话会有一个问题,就是如果你的数据里有双引号的话那么你的网页就会出现茬子,所以在读出来的数据那要加上“addSlashes”函数,其作用是在“双引号”或单“引号前”加“\”把那些引号变成转义字符,这样子页面就不会有问题了
展开全部
你插入的数据是不是从编辑器里提交的数据啊?这样的数据再放到编辑器里读取就可以了。要么就在插入或读取数据的时候过滤一下html标记,给你一个过滤html代码的函数:
function ihtmlspecialchars($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = ihtmlspecialchars($val);
}
} else {
$string = preg_replace('/&((#(\d{3,5}|x[a-fa-f0-9]{4})|[a-za-z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', ''), array('&', '"', '<', '>'), $string));
}
return $string;
}
function ihtmlspecialchars($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = ihtmlspecialchars($val);
}
} else {
$string = preg_replace('/&((#(\d{3,5}|x[a-fa-f0-9]{4})|[a-za-z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', ''), array('&', '"', '<', '>'), $string));
}
return $string;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你插入到数据库肯定有HTML代码,从源头开始解决
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询