龍巖易富通網(wǎng)絡(luò)科技有限公司

龍巖小程序開發(fā),龍巖分銷系統(tǒng)

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

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

PHP 5.4.3 環(huán)境中測試了一個(gè)在 PHP 5.2 環(huán)境下運(yùn)行正常的程序,卻發(fā)現(xiàn)本應(yīng)正常提交一個(gè)中文字符串到數(shù)據(jù)庫的代碼卻提交了一個(gè)空字符串,經(jīng)過排查,該字符串在經(jīng) htmlspecialchars 函數(shù)轉(zhuǎn)義之前正常,而在轉(zhuǎn)義之后卻變成了空字符串。調(diào)用例子如下:


$str = '中文字符串';

$str_converted = htmlspecialchars($str);

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

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 版本開始第三個(gè)參數(shù)字符串編碼的默認(rèn)值改成了 UTF-8,而我這段代碼中的中文編碼正好是 GB2312 編碼的,跟現(xiàn)在的默認(rèn)參數(shù)不一致,于是更改調(diào)用參數(shù)如下:

$str = '中文字符串';

# 為了與舊環(huán)境兼容,這里第二個(gè)參數(shù)沒有組合使用 PHP 5.4 新加入的 ENT_HTML401 常量

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

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


贊 (

發(fā)表評論

主站蜘蛛池模板: 色婷婷六月亚洲综合香蕉| 99久久精品国产综合一区| 伊人成年综合网| 五月丁香综合激情六月久久| 色综合久久88色综合天天| 色综合合久久天天给综看| 国产福利电影一区二区三区久久久久成人精品综合| 狠狠色丁香久久综合五月| 开心久久婷婷综合中文字幕| 色噜噜狠狠狠综合曰曰曰| 婷婷丁香五月激情综合| 狠狠做深爱婷婷综合一区| 狠狠色成人综合网图片区| 青青青伊人色综合久久| 国产综合成人色产三级高清在线精品发布| 国产成人精品综合久久久| 国产精品综合久久第一页| 婷婷综合缴情亚洲狠狠尤物| 国产成人99久久亚洲综合精品| 亚洲欧美综合在线天堂| 色99久久久久高潮综合影院| 一本大道加勒比久久综合| 奇米综合四色77777久久| 色欲天天天综合网| 久久99亚洲综合精品首页| 天天看天天摸色天天综合网| 精品福利一区二区三区精品国产第一国产综合精品| 国产综合精品久久亚洲| 欧美自拍另类欧美综合图片区| 亚洲综合日韩久久成人AV| 国产激情综合在线观看| 国产成人精品综合久久久久| 一本色综合网久久| 欧美日韩一区二区综合在线| 国产在线一区二区综合免费视频| 69国产成人综合久久精品| 狠狠色婷婷七月色综合| 亚洲国产精品成人AV无码久久综合影院| 国产色综合久久无码有码| 国产成人综合日韩精品无码不卡| 久久婷婷色综合一区二区|