實例
從不同 ASCII 值傳回字元:
<?php echo chr(52) . "<br>"; // Decimal value echo chr(052) . "<br>"; // Octal value echo chr(0x52) . "<br>"; // Hex value ?>
定義和用法
chr() 函數從指定 ASCII 值傳回字元。
ASCII 值可被指定為十進位值、八進位值或十六進位值。八進位值被定義為帶前置 0,十六進位值被定義為帶前置 0x。
語法
chr(ascii)
參數 | #描述 |
ascii | 必需。 ASCII 值。 |
技術細節
#傳回值: | #傳回指定的字元。 |
PHP 版本: | 4+ |
#更多實例
使用八進位值046 來新增ASCII 字元:&。
<?php $str = chr(046); echo("You $str me forever!"); ?>
實例 2
使用十進位值 43 和 61 來新增 ASCII 字元:+ 和 =。
<?php $str = chr(43); $str2 = chr(61); echo("2 $str 2 $str2 4"); ?>
chr()函數的作用與ord()函數相反,用於傳回指定的字符,如chr(97)傳回a。
結合上面實例,只要取得到中文字符的ASCII值,就可以透過chr()函陣列裝出中文字符,程式碼如下
$string = "不要迷恋哥"; $length = strlen($string); var_dump($string);//原始中文 var_dump($length);//长度 $result = array(); for($i=0;$i<$length;$i++){ if(ord($string[$i])>127){ $result[] = ord($string[$i]).' '.ord($string[++$i]); } } var_dump($result); foreach($result as $v){ $decs = explode(" ",$v); echo chr($decs[0]).chr($decs[1]); }
#如上程式碼並沒有直接輸出中文字符,但列印出正常的漢字,其原理是先取得各個位元組的ASCII值,透過chr()函數轉換為位元組,再把兩個位元組組合起來就形成了一個完整的中文漢字。
以上是php從指定ASCII值傳回字元函數chr()的詳細內容。更多資訊請關注PHP中文網其他相關文章!