php實現翻轉的方法:1、使用strrev()函數實作英文字串翻轉;2、透過自訂的selfStrrev方法實現中文字串翻轉。
本文操作環境:Windows7系統、PHP7.1版、Dell G3電腦。
php如何實現翻轉? PHP自訂函數實作翻轉中文的功能
對於PHP語言來說,說到字串翻轉大家首先想到應該就是strrev()這個函數了,
strrev定義和用法
strrev() 函數反轉字串。
語法
strrev(string)
參數
string 必要。規定要反轉的字串。
例如:
<?php echo strrev("Hello World!"); ?>
輸出結果為:!dlroW olleH
strrev()這個函數對英文很好用,直接可以實現字串翻轉,但是如果是中文的話那麼就都是亂碼了
例如:
<?php echo strrev("您好世界!"); ?>
輸出結果為:��疸僉娂� 這個結果是不是沒有人能看得懂啊。那麼以下於老師就跟大家分享如何反轉中文的程式碼;
第一種方法:
function selfStrrev($str){ //判断输入的是不是utf8类型的字符,否则退出 if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){ exit("输入类型不是UTF8类型的字符串"); } $array=array(); //将字符串存入数组 $l=mb_strlen($str,'UTF-8');//在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算 for($i=0;$i<$l;$i++){ $array[]=mb_substr($str,$i,1,'UTF-8'); } //反转字符串 krsort($array); //拼接字符串 $string=implode($array); return $string; } $str = "于老师特别帅"; echo selfStrrev($str);
輸出結果為:帥別特師老於;
第二種方法:
function selfStrrev($str){ //判断输入的是不是utf8类型的字符,否则退出 if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){ exit("输入类型不是UTF8类型的字符串"); } //定义一个新的字符串 用来存储反转后的字符串 $revStr = ""; $l=mb_strlen($str,'UTF-8');//在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算 for($i=$l;$i>0;$i--){ $revStr .= mb_substr($str,$i-1,1,'UTF-8'); //从最后一位开始截取,一直截取到第一位 然后拼接到定义好的新的字符串里面 } return $revStr; } $str = "于老师特别帅"; echo selfStrrev($str);
輸出結果為:帥別特師老於;
這裡用到的技術就是mb_XXX 系列函數,需要注意的mb_XXX 系列函數是並不是PHP核心函數,使用前需要確保在php.ini中載入了php_mbstring.dll,即確保「extension=php_mbstring.dll」這一行存在並且沒有被註解掉,否則會出現未定義函數的問題;
推薦學習:《PHP影片教學》
以上是php如何實現翻轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!