久成视频在线观看免费-先锋影音资源影音中在线不卡-久久精品—区二区三区美女-久久国产免费一区二区三区

<track id="icesm"></track>

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

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

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

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

      PHP 5.4.3 環(huán)境中測試了一個在 PHP 5.2 環(huán)境下運行正常的程序,卻發(fā)現(xiàn)本應正常提交一個中文字符串到數(shù)據(jù)庫的代碼卻提交了一個空字符串,經(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 版本開始第三個參數(shù)字符串編碼的默認值改成了 UTF-8,而我這段代碼中的中文編碼正好是 GB2312 編碼的,跟現(xiàn)在的默認參數(shù)不一致,于是更改調(diào)用參數(shù)如下:

      $str = '中文字符串';

      # 為了與舊環(huán)境兼容,這里第二個參數(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ù)。


      贊 (

      發(fā)表評論