龍巖易富通網絡科技有限公司

龍巖小程序開發,龍巖分銷系統

php5.4后htmlspecialchars輸出為空的問題

2015.09.10 | 1638閱讀 | 0條評論 | php

PHP 5.4.3 環境中測試了一個在 PHP 5.2 環境下運行正常的程序,卻發現本應正常提交一個中文字符串到數據庫的代碼卻提交了一個空字符串,經過排查,該字符串在經 htmlspecialchars 函數轉義之前正常,而在轉義之后卻變成了空字符串。調用例子如下:


$str = '中文字符串';

$str_converted = htmlspecialchars($str);

echo $str_converted; 遂查看PHP手冊,獲知 htmlspecialchars 函數原型如下:

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] ) 更新日志里面又有提到:

5.4.0 The default value for the encoding parameter was changed to UTF-8. 

5.4.0 The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML and ENT_HTML5 were added. PHP 從 5.4.0 版本開始第三個參數字符串編碼的默認值改成了 UTF-8,而我這段代碼中的中文編碼正好是 GB2312 編碼的,跟現在的默認參數不一致,于是更改調用參數如下:

$str = '中文字符串';

# 為了與舊環境兼容,這里第二個參數沒有組合使用 PHP 5.4 新加入的 ENT_HTML401 常量

$str_converted = htmlspecialchars($str, ENT_COMPAT ,'GB2312');

echo $str_converted; 這樣,“中文字符串”就可以正常顯示了。為了使 PHP 5.4 之前環境中編寫的代碼能夠向前兼容,建議調用 htmlspecialchars 函數的的時候都提供字符串編碼參數。


贊 (

發表評論

主站蜘蛛池模板: 狠狠色成人综合首页| 成人综合激情| 亚洲综合网站色欲色欲| 欧美综合缴情五月丁香六月婷 | 亚洲性感综合欧美| 亚洲 欧美 日韩 综合aⅴ视频| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久婷婷午色综合夜啪 | 亚洲综合av永久无码精品一区二区| 久久综合狠狠综合久久97色| 久久婷婷色香五月综合激情| 成人综合激情| 亚洲综合无码AV一区二区| 狠狠色丁香婷婷综合久久来| 亚洲狠狠婷婷综合久久久久| 激情综合色五月丁香六月亚洲| 欧美综合自拍亚洲综合图| 一本大道久久a久久精品综合| 国产91色综合久久免费分享| 久久久久久久综合日本亚洲| 欧美日韩亚洲综合一区二区三区| 国产精品日韩欧美久久综合| 日韩无码系列综合区| 99久久国产综合精品麻豆| 久久综合给合久久狠狠狠97色| 色综合久久中文综合网| 99精品国产综合久久久久五月天| 伊人久久大香线蕉综合网站| 欧美久久综合九色综合| 一个色综合国产色综合| 国产91久久综合| 亚洲精品国产第一综合99久久| 国产精品国色综合久久| 激情五月激情综合网| 五月激情综合网| 色欲综合一区二区三区| 亚洲伊人成无码综合网| 一本一道久久综合狠狠老| 色欲天天天综合网| 亚洲综合色区在线观看| 国产福利电影一区二区三区久久久久成人精品综合 |