首頁 > 後端開發 > PHP問題 > php如何實現翻轉

php如何實現翻轉

藏色散人
發布: 2023-03-14 16:50:01
原創
1602 人瀏覽過

php實現翻轉的方法:1、使用strrev()函數實作英文字串翻轉;2、透過自訂的selfStrrev方法實現中文字串翻轉。

php如何實現翻轉

本文操作環境: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,&#39;UTF-8&#39;)){
    exit("输入类型不是UTF8类型的字符串");
  }
  $array=array();
  //将字符串存入数组
  $l=mb_strlen($str,&#39;UTF-8&#39;);//在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算
  for($i=0;$i<$l;$i++){
    $array[]=mb_substr($str,$i,1,&#39;UTF-8&#39;);
  }
  //反转字符串
  krsort($array);
  //拼接字符串
  $string=implode($array);
  return $string;
}
$str = "于老师特别帅";
echo selfStrrev($str);
登入後複製

輸出結果為:帥別特師老於;

第二種方法:

function selfStrrev($str){
//判断输入的是不是utf8类型的字符,否则退出
  if(!is_string($str)||!mb_check_encoding($str,&#39;UTF-8&#39;)){
    exit("输入类型不是UTF8类型的字符串");
  }
  //定义一个新的字符串 用来存储反转后的字符串
  $revStr = "";
  $l=mb_strlen($str,&#39;UTF-8&#39;);//在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算
  for($i=$l;$i>0;$i--){
    $revStr .= mb_substr($str,$i-1,1,&#39;UTF-8&#39;); //从最后一位开始截取,一直截取到第一位 然后拼接到定义好的新的字符串里面
  }
  return $revStr;
}
$str = "于老师特别帅";
echo selfStrrev($str);
登入後複製

輸出結果為:帥別特師老於;

這裡用到的技術就是mb_XXX 系列函數,需要注意的mb_XXX 系列函數是並不是PHP核心函數,使用前需要確保在php.ini中載入了php_mbstring.dll,即確保「extension=php_mbstring.dll」這一行存在並且沒有被註解掉,否則會出現未定義函數的問題;

推薦學習:《PHP影片教學

以上是php如何實現翻轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板