htmlspecialchars php5.4,php5.4以上版本GBK编码下htmlspecialchars输出为空的兼容性处理方法...

从旧版升级到PHP5.4,恐怕最麻烦的就是HTMLspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到。

可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......!

PHP htmlspecialchars() 函数

PHP String 函数

实例

把预定义的字符 "" (大于)转换为 HTML 实体:

$str = "This is some bold text.";

echo htmlspecialchars($str);

?>

以上代码的 HTML 输出如下(查看源代码):

html>

This is some bold text.

以上代码的浏览器输出:

This is some bold text.

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

预定义的字符是:

& (和号)成为 &

" (双引号)成为 "

' (单引号)成为 '

< (小于)成为 <

> (大于)成为 >

提示:如需把特殊的 HTML 实体转换回字符,请使用 htmlspecialchars_decode() 函数。

在使用php5.4以上版本以上时会有一个函数可能会报错

如下

f01ed00ac38eb77fbb70c58b8132737c.png

Warning: htmlspecialchars(): charset `gbk' not supported, assuming utf-8

原因是因为5.4以上这个函数默认为utf8编码没有gbk所有传进去的参数如果有中文就会报上面这个错误

如果你的程序用的是gbk的话就可以使用下面这个方法

给htmlspecialchars()传后两个参数

如下:

htmlspecialchars($str,ENT_COMPAT,'GB2312');//这样就不会报错啦

如果你的程序里用啦好多这个函数,那就要你一个一个替换喽

还有一种情况,如果你的程序是utf8的那么检查下你的php.ini中的字符集配置是不是下面gbk的如果是就改成utf-8同样的就不会报错啦

default_charset = "UTF-8"

;default_charset = "GBK"

按上面的把gbk这行注释掉,使用默认utf-8的编码就可以啦

函数写法:function JZ_htmlspecialchars($str) {

global $cfg_soft_lang;

if (version_compare(PHP_VERSION, '5.4.0', '

if ($cfg_soft_lang=='gb2312') return htmlspecialchars($str,ENT_COMPAT,'ISO-8859-1');

else return htmlspecialchars($str);

}

调用:dede_htmlspecialchars('你的代码');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值