久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP 實現(xiàn)字符串翻轉(zhuǎn)(包含中文漢字)的實現(xiàn)代碼

本篇文章主要介紹了PHP 實現(xiàn)字符串翻轉(zhuǎn)(包含中文漢字)的實現(xiàn)代碼,在PHP面試題中經(jīng)常遇到,有興趣的可以了解一下。

包含漢字字符串亂碼

PHP面試題,題目很短,也很常見,但更容易出錯,題目如下

如何實現(xiàn)字符串翻轉(zhuǎn)?

第一反應,當然是strrev函數(shù)啦,這么容易的題目還放在面試里考,真不嫌麻煩啊?但是看了網(wǎng)上的答案后,發(fā)現(xiàn)自己錯了~~~

strrev函數(shù)對英文很好用,直接可以實現(xiàn)字符串翻轉(zhuǎn),但是面對中文呢?肯定都是亂碼,對于這樣的問題有很多,比如strstr,substr等函數(shù)都是這樣的。還好PHP提供了mb_類的函數(shù)實現(xiàn)不同編碼、不同語言之間的相互轉(zhuǎn)換等操作。下面是我寫的PHP字符串翻轉(zhuǎn)函數(shù)(mb_類的函數(shù)需要開啟一個mb_string實現(xiàn))。

解決方案

代碼:

<?php
header("content-type:text/html;charset=utf-8");
/**
  strrev() 函數(shù)反轉(zhuǎn)字符串。
  語法
  strrev(string)
  參數(shù) 描述
  string 必需。規(guī)定要反轉(zhuǎn)的字符串。
 */

/**
此函數(shù)的作用是反轉(zhuǎn)中文字符串
mb_strlen() 獲取字符的長度
mb_substr() 獲取字符的單個元素
krsort() 按照鍵值逆序排序數(shù)組,對關(guān)聯(lián)數(shù)組按照鍵名進行降序排序
Array ( [8] => 國 [7] => 中 [6] => h [5] => s [4] => i [3] => l [2] => g [1] => n [0] => E ) English中國->國中hsilgnE
(ksort()對關(guān)聯(lián)數(shù)組按照鍵名進行升序排序)
implode() 將數(shù)組拼接為字符串
explode() 使用字符串分隔字符串
 */
function str_rev_gb($str){
  //判斷輸入的是不是utf8類型的字符,否則退出
  if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){
    exit("輸入類型不是UTF8類型的字符串");
  }
  $array=array();
  //將字符串存入數(shù)組
  $l=mb_strlen($str,'UTF-8');//在mb_strlen計算時,選定內(nèi)碼為UTF8,則會將一個中文字符當作長度1來計算
  for($i=0;$i<$l;$i++){
    $array[]=mb_substr($str,$i,1,'UTF-8');
  }
  //反轉(zhuǎn)字符串
  krsort($array);
  //拼接字符串
  $string=implode($array);
  return $string;
}
$str1 = "Englist";
$str2 = "English中國";
$str3 = "Eng中l(wèi)ish國";
$str4 = "中華人民共和國";
echo '直接用PHP自帶strrev函數(shù)反轉(zhuǎn):'.'<br />';
echo $str1."->".strrev($str1)."<br>";
echo $str2."->".strrev($str2)."<br>";
echo $str3."->".strrev($str3)."<br>";
echo $str4."->".strrev($str4)."<br>";
echo '<br />';
echo $str1."->".str_rev_gb($str1)."<br>";
echo $str2."->".str_rev_gb($str2)."<br>";
echo $str3."->".str_rev_gb($str3)."<br>";
echo $str4."->".str_rev_gb($str4)."<br>";

運行結(jié)果:

直接用PHP自帶strrev函數(shù)反轉(zhuǎn):
Englist->tsilgnE
English中國->��學�hsilgnE
Eng中l(wèi)ish國->���hsil���gnE
中華人民共和國->��匒居呰溺䎍學�

Englist->tsilgnE
English中國->國中hsilgnE
Eng中l(wèi)ish國->國hsil中g(shù)nE
中華人民共和國->國和共民人華中

需要注意的是,mb_strlen并不是PHP核心函數(shù),使用前需要確保在php.ini中加載了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在并且沒有被注釋掉,否則會出現(xiàn)未定義函 數(shù)的問題。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持。

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關(guān)文檔推薦

這篇文章主要介紹了PHP實現(xiàn)字符串翻轉(zhuǎn)功能的方法,結(jié)合實例形式對比分析了php使用遞歸與循環(huán)算法實現(xiàn)字符串反轉(zhuǎn)功能的相關(guān)操作技巧,需要的朋友可以參考下
主站蜘蛛池模板: 欧美日产国产成人免费图片 | 91精品国产乱码久久久久久久久 | 亚洲一区视频在线 | 欧美日韩高清免费 | 羞羞视频在线观免费观看 | 欧美国产一区二区 | 91亚洲一区| 欧美久 | 国产高清免费在线 | 中文字幕高清免费日韩视频在线 | 国产精品一区二区日韩 | 国产精品视频综合 | 亚洲国产中文在线 | 国产精品成av人在线视午夜片 | 国产欧美精品一区二区色综合朱莉 | 欧美一区二区三区在线看 | 日韩成人在线电影 | 欧美区在线| 亚洲午夜精品在线观看 | 色久五月| av日韩一区 | 欧美女优在线观看 | 欧美h| 波多野结衣一区二区三区 | 日本三级做a全过程在线观看 | 成人精品一区二区三区中文字幕 | 999视频在线播放 | av手机在线播放 | 老牛嫩草一区二区三区av | 色婷婷一区| 国产精品1区| 中文字幕1区2区3区 日韩在线视频免费观看 | 国产欧美一区二区三区久久手机版 | 午夜a级理论片915影院 | 国产精品一区二区电影 | 欧洲精品码一区二区三区免费看 | 亚洲日韩中文字幕一区 | 久久亚洲综合 | 羞羞的视频免费看 | 高清一区二区三区 | 99精品视频免费在线观看 |