實例
傳回 "h" 的 ASCII值:
<?php echo ord("h")."<br>"; echo ord("hello")."<br>"; ?>
定義和用法
ord() 函數傳回字串中第一個字元的 ASCII 值。
語法
ord(string)
參數 說明
string 必要。要從中獲得 ASCII 值的字串。
技術細部
傳回值: 以整數形式傳回 ASCII 值。
PHP 版本: 4+
ord()函數的應用
ord()函數用來傳回一個字元的ASCII值,最基本的用法如取得a 的ASCII值ord ('a')返回97,但在實際開發中,應用最多的還是用於字符截取函數中獲取中文字符高低位編碼的十進制數,如常見的中文字符截取函數具體可看看PHPWind或Discuz!論壇原始碼中substrs()函數或cutstr()函數,其原理就是透過ord()函數取得字元的ASCII碼值,如果傳回值大於127則表示為中文字元的一半,再取得後一半組合成一個完整字符,同時結合字元編碼如GBK或UTF-8等。
以GBK編碼為例利用ord()函數判斷中文字元回傳各中文字元的ASCII值,程式碼如下
$string = "不要迷恋哥"; $length = strlen($string); var_dump($string);//原始中文 var_dump($length);//长度 $result = array(); for($i=0;$i<$length;$i++){ if(ord($string[$i])>127){ $result[] = $string[$i].' '.$string[++$i]; } } var_dump($result);
程式碼說明
1,定義一個變數$string,其值為字符字串
2,取得變數的長度(位元組數)
3,列印變數和變數的長度
4,透過for迴圈取得變數的各個位元組值,把一個漢字的兩個位元組中間用空格隔開顯示。
結果如下圖
圖解:「不要迷戀哥哥」為5個漢字,共10個位元組(一個漢字2個位元組),分別列印各個位元組無法正常顯示如上圖
初始值不變修改for迴圈部分程式碼顯示各個位元組ASCII值
$result = array(); for($i=0;$i<$length;$i++){ if(ord($string[$i])>127){ $result[] = ord($string[$i]).' '.ord($string[++$i]); } } var_dump($result);
如上程式碼使用ord()函數列印各字元的ASCII值,結果如下
透過ord()函數轉換後就能正常查看各個字元的ASCII值。
以上是php傳回字串中第一個字元的ASCII值函數ord()的詳細內容。更多資訊請關注PHP中文網其他相關文章!