PHP5.5 htmlspecialchars 返回null的坑_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > PHP5.5 htmlspecialchars 返回null的坑

PHP5.5 htmlspecialchars 返回null的坑

 2014/4/25 17:18:43  vb2005xu  程序员俱乐部  我要评论(0)
  • 摘要:昨天在写PDO数据库封装类的测试代码时遇到这个问题,取出的数组使用count返回5,使用array_keys返回数组,但是在dump的时候却返回null,纠结了好长时间,诸如下图:dump函数用了好多年了,一直没有出现这个问题,我还以为是$rowset返回的是引用,所以还重新赋值了下,我的dump函数如下:functiondump($vars,$label='',$return=false){$content="<pre>\n";if($label!=''){$content
  • 标签:PHP

昨天在写 PDO数据库封装类的 测试代码时遇到这个问题,取出的数组 使用 count 返回5,使用 array_keys 返回数组,但是在 dump 的时候却返回 null,纠结了好长时间,诸如下图:

?

dump 函数用了好多年了,一直没有出现这个问题,我还以为是 $rowset 返回的是引用,所以还重新赋值了下,

我的dump函数如下:

class="php">function dump($vars, $label = '', $return = false)
{    
    $content = "<pre>\n";
    if ($label != '') {
        $content .= "<strong>{$label} :</strong>\n";
    }
    $content .= htmlspecialchars(print_r($vars, true));
    $content .= "\n</pre>\n";
    
    if ($return) { return $content; }
    echo $content;
}

?

话说这个函数从php4.3时代就跟着我打拼,一直没出现过啥问题,....

?

最后 查了N多地方才把注意力移到这个上面,我机器上装的是 PHP5.5,我没有测试过到底是哪个版本就会出现这个问题,此处标记下,这个是坑...

?

那行代码 改成:

$content .= htmlspecialchars(print_r($vars, true),ENT_COMPAT | ENT_IGNORE);

?

这个,增加第二个参数 ,并追加

| ENT_IGNORE

?

?

写道 string htmlentities ( string $string [, int $flags = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )

ENT_COMPAT 将双引号换成单引号
ENT_QUOTES 将转换和单引号都翻倍。
ENT_NOQUOTES 将离开两双,单引号得救。
ENT_IGNORE
静静地丢弃无效代码单元序列代替返回一个空字符串。在PHP 5.3.0补充说。这是供向后兼容性,避免使用它,因为它可能的安全隐患


支持的字符集列表 字符集 别名 描述
ISO-8859-1 ISO8859-1 西欧,Latin-1
ISO-8859-15 ISO8859-15 西欧,Latin-9。增加欧元符号,法语和芬兰语字母在 Latin-1(ISO-8859-1) 中缺失。
UTF-8 ASCII 兼容的多字节 8 位 Unicode。
cp866 ibm866, 866 DOS 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。
cp1251 Windows-1251, win-1251, 1251 Windows 特有的西里尔编码。本字符集在 4.3.2 版本中得到支持。
cp1252 Windows-1252, 1252 Windows 特有的西欧编码。
KOI8-R koi8-ru, koi8r 俄语。本字符集在 4.3.2 版本中得到支持。
BIG5 950 繁体中文,主要用于中国台湾省。
GB2312 936 简体中文,中国国家标准字符集。
BIG5-HKSCS 繁体中文,附带香港扩展的 Big5 字符集。
Shift_JIS SJIS, 932 日语
EUC-JP EUCJP 日语

?

  • 大小: 54.3 KB
  • 查看图片附件
上一篇: v?s?快?捷?键 下一篇: 没有下一篇了!
发表评论
用户名: 匿名