PHP實(shí)現(xiàn)ASCII碼與字符串相互轉(zhuǎn)換的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)ASCII碼與字符串相互轉(zhuǎn)換的方法。分享給大家供大家參考,具體如下:
<?php class ascii { /** * 將ascii碼轉(zhuǎn)為字符串 * @param type $str 要解碼的字符串 * @param type $prefix 前綴,默認(rèn):&# * @return type */ function decode($str, $prefix="&#") { $str = str_replace($prefix, "", $str); $a = explode(";", $str); foreach ($a as $dec) { if ($dec < 128) { $utf .= chr($dec); } else if ($dec < 2048) { $utf .= chr(192 + (($dec - ($dec % 64)) / 64)); $utf .= chr(128 + ($dec % 64)); } else { $utf .= chr(224 + (($dec - ($dec % 4096)) / 4096)); $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64)); $utf .= chr(128 + ($dec % 64)); } } return $utf; } /** * 將字符串轉(zhuǎn)換為ascii碼 * @param type $c 要編碼的字符串 * @param type $prefix 前綴,默認(rèn):&# * @return string */ function encode($c, $prefix="&#") { $len = strlen($c); $a = 0; while ($a < $len) { $ud = 0; if (ord($c{$a}) >= 0 && ord($c{$a}) <= 127) { $ud = ord($c{$a}); $a += 1; } else if (ord($c{$a}) >= 192 && ord($c{$a}) <= 223) { $ud = (ord($c{$a}) - 192) * 64 + (ord($c{$a + 1}) - 128); $a += 2; } else if (ord($c{$a}) >= 224 && ord($c{$a}) <= 239) { $ud = (ord($c{$a}) - 224) * 4096 + (ord($c{$a + 1}) - 128) * 64 + (ord($c{$a + 2}) - 128); $a += 3; } else if (ord($c{$a}) >= 240 && ord($c{$a}) <= 247) { $ud = (ord($c{$a}) - 240) * 262144 + (ord($c{$a + 1}) - 128) * 4096 + (ord($c{$a + 2}) - 128) * 64 + (ord($c{$a + 3}) - 128); $a += 4; } else if (ord($c{$a}) >= 248 && ord($c{$a}) <= 251) { $ud = (ord($c{$a}) - 248) * 16777216 + (ord($c{$a + 1}) - 128) * 262144 + (ord($c{$a + 2}) - 128) * 4096 + (ord($c{$a + 3}) - 128) * 64 + (ord($c{$a + 4}) - 128); $a += 5; } else if (ord($c{$a}) >= 252 && ord($c{$a}) <= 253) { $ud = (ord($c{$a}) - 252) * 1073741824 + (ord($c{$a + 1}) - 128) * 16777216 + (ord($c{$a + 2}) - 128) * 262144 + (ord($c{$a + 3}) - 128) * 4096 + (ord($c{$a + 4}) - 128) * 64 + (ord($c{$a + 5}) - 128); $a += 6; } else if (ord($c{$a}) >= 254 && ord($c{$a}) <= 255) { //error $ud = false; } $scill .= $prefix.$ud.";"; } return $scill; } } /* PHP 轉(zhuǎn) ASCII require_once "ascii_class.php"; */ $aa = new ascii; echo "<xmp>"; echo $str = $aa->encode("PHP編程:www.dbjr.com.cn"); echo "</xmp>"; echo $aa->decode($str); ?>
PS:這里再為大家提供2款A(yù)SCII編碼轉(zhuǎn)換操作相關(guān)工具供大家參考使用:
Native/ASCII在線編碼轉(zhuǎn)換工具:
http://tools.jb51.net/transcoding/native2ascii
在線中文漢字/ASCII碼/Unicode編碼互相轉(zhuǎn)換工具:
http://tools.jb51.net/transcoding/chinese2unicode
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php正則表達(dá)式用法總結(jié)》、及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- 與ASCII碼相關(guān)的C語言字符串操作函數(shù)
- 淺析易語言ascii(ASCII)轉(zhuǎn)碼
- 易語言比較兩個文本ASCII碼值大小
- python中ASCII碼和字符的轉(zhuǎn)換方法
- JS獲取字符對應(yīng)的ASCII碼實(shí)例
- Python實(shí)現(xiàn)將16進(jìn)制字符串轉(zhuǎn)化為ascii字符的方法分析
- JAVA 中實(shí)現(xiàn)整句漢字拆分、轉(zhuǎn)換為ASCII實(shí)例詳解
- javascript ASCII和Hex互轉(zhuǎn)的實(shí)現(xiàn)方法
- javascript十六進(jìn)制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法
- C語言實(shí)現(xiàn)AT指令A(yù)SCII碼的拼接處理流程
相關(guān)文章
PHP實(shí)現(xiàn)對圖片的反色處理功能【測試可用】
這篇文章主要介紹了PHP實(shí)現(xiàn)對圖片的反色處理功能,涉及php針對圖片的讀取、數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2018-02-02php中array_unshift()修改數(shù)組key注意事項(xiàng)分析
這篇文章主要介紹了php中array_unshift()修改數(shù)組key注意事項(xiàng),實(shí)例分析了array_unshift()函數(shù)在處理鍵值為數(shù)字類型時自動轉(zhuǎn)換鍵值的情況,需要的朋友可以參考下2016-05-05php中文字母數(shù)字驗(yàn)證碼實(shí)現(xiàn)代碼
php下實(shí)現(xiàn)多種方式的驗(yàn)證碼實(shí)現(xiàn)效果代碼2008-04-04php中拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載
php中拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載方法, 需要的朋友可以參考下2012-07-07