PHP常用字符串函數小結

jopen 9年前發布 | 20K 次閱讀 PHP PHP開發

一、判斷類型的函數


is_bool()       //判斷是否為布爾型
is_float()      //判斷是否為浮點型
is_real()       //同上
is_int()        //判斷是否為整型
is_integer()    //同上
is_string()     //判斷是否為字符串
is_object()     //判斷是否為對象
is_array()      //判斷是否為數組
is_null()       //判斷是否為null
is_file()       //判斷是否為文件
is_dir()        //判斷是否為目錄
is_numeric()    //判斷是否為數字
is_nan()        //判斷不是數字
is_resource()   //判斷是否為資源類型
is_a($obj,$classname) //判斷對象是否為類的實例
                      //可用 if($obj instanceof Classname)


二、獲取子串位置


strpos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中首次出現的數字位置。 
stripos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中首次出現的數字位置, 不區分大小寫。
strrpos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中最后一次出現的數字位置。
strripos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中最后一次出現的數字位置,不區分大小寫。 


三、獲取子串


substr($str,$start [,$length]); //獲取子串
substr_compare($main_str,$str,$offset[,$length]); //子串比較 從offset處開始比較
substr_count($hs,$nd [,$offset=0 [,$length]]); //獲取子串nd在hs中出現的次數
substr_replace($string,$replacement,$start [,$length]); //字符串子串替換
                               //用$replacement替換掉$string從start開始長度為length的子串
strstr($hys,$nd [,bool $before_needle = false ]);//返回$nd在$hys 第一次出現的地方開始到字符串結束 為止的字符串
               //第三個參數如果為true 則返回$nd 之前的字符串
stristr($hys,$nd [,bool $before_needle = false ]); //同上,忽略大小寫版本
strrchr($hys,$nd); //返回$nd在$hys最后一次出現的地方開始到字符串結束 為止的字符串
               //一般和 substr(strrchr($hys,$nd),strlen($nd)); 合用
strpbrk($haystack,$char_list);//從$char_list中依次匹配單個字符在$haystack中第一次出現的地方
                        //到字符串結束的地方 的整個字符串
strtok($str,$token); //第一次使用 將字符串按分隔符$token進行分割
strtok($token);      //第二次使用
    eg.
    $string = "This is\tan example\nstring";
    /* 使用制表符和換行符作為分界符 */
    $tok = strtok($string, " \n\t");

    while ($tok !== false) {
        echo "Word=$tok<br />";
        $tok = strtok(" \n\t");
    }


四、字符串str_ 型函數



str_getcsv($str); //將csv文件字符串轉換成一個數組
str_replace($search,$replace,$subject [,&$count]);//搜索并替換字符串
           //第四個參數被指定的話,將會賦值給他替換的次數
str_ireplace($search,$replace,$subject [,&$count]);//搜索并替換字符串
           //第四個參數被指定的話,將會賦值給他替換的次數 忽略大小寫
str_shuffle(string $str);//隨機打亂字符串
str_split($str [,$len=1]);//將字符串轉換成一個數組
                         //,每個數組單元的長度為$len


五、字符串長度



strlen($str);  //字符串長度


六、翻轉字符串



strrev(string $string);// 翻轉字符串


七、mb_類型字符串函數

mb_類型字符串與上述字符串函數基本一樣,
只是加多一個可選的字符編碼參數,用法同上
這里列出一些其他有用函數

1、檢測字符串的字符編碼



$encode = mb_detect_encoding($lines, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
if($encode != "UTF-8"){
    $lines = iconv($encode,"UTF-8", $lines);
}


八、字符串的相關操作

1、轉換字符串類型


strval($str); //轉換成字符串類型
floatval($str);//轉換成浮點型
intval($str); //轉換成整型


2、大小寫轉換



strtolower($str); //全部轉換成小寫
strtoupper($str); //全部轉換成大寫


3、字符串轉時間戳



strtotime($str); //時間格式的字符串轉換成整型時間戳
           //注意設置時區 否則會有 8小時誤差


4、去除HTML 和 PHP 標記



strip_tags($str [,$tags]);//去除不含$tags里標簽外的所有標簽


5、ascii轉數字 數字轉ascii


chr(int $ascii); //數字轉換成ascii
ord(string $str); //返回$str第一個字符的ascii值


6、json的編碼與解碼


json_encode($obj/$arr/$str...);//編碼成json 格式的字符串
json_decode($jsonstr [,$assoc=true]); //解碼成對象
                         //當$assoc=true 時 返回數組 而非對象


7、換行轉<br/>



nl2br($str); //字符串 $str 所有新行之前插入'<br/>'


8、數組轉字符串,字符串轉數組



implode($arr,$glue);//將一維數組轉換為字符串
explode();//字符串轉換為數組


9、千位分割格式化



string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )
 @param   $number 你要格式化的數字 
          $decimals 要保留的小數位數 
          $dec_point 指定小數點顯示的字符 
          $thousands_sep 指定千位分隔符顯示的字符 


10、去空格



trim(string $str [,string $charlist ]); //去左右字符
ltrim(string $str [,string $charlist ]); //去左字符
rtrim(string $str [,string $charlist ]); //去右字符

該函數刪除 str 末端的空白字符并返回。

不使用第二個參數, rtrim() 僅刪除以下字符:
? " " (ASCII 32 (0x20)),普通空白符。  
? "\t" (ASCII 9 (0x09)),制表符。  
? "\n" (ASCII 10 (0x0A)),換行符。  
? "\r" (ASCII 13 (0x0D)),回車符。  
? "\0" (ASCII 0 (0x00)),NUL 空字節符。  
? "\x0B" (ASCII 11 (0x0B)),垂直制表符。
過濾字符也可由 charlist 參數指定。一般要列出所有希望過濾的字符,
也可以使用 ".." 列出一個字符范圍


11、轉換字符串編碼函數


iconv($in_charset, $out_charset, $str);
$in_charset輸入字符集
$out_charset輸出字符集


12、字符串加密函數



sha1($str); 
md5($str);


13、字符串轉義與反轉義函數



addcslashes(string $str , string $charlist);//轉義字符串中的特殊字符
               //eg. addcslashes($str,"\0..\37!@\177..\377");
               //轉義ascii 中0-37、177-377中不含@符號的字符

stripcslashes($str) — 反轉義addcslashes()函數轉義處理過的字符串
  返回反轉義后的字符串。可識別類似 C 語言的 \n,\r,... 八進制以及十六進制的描述


14、按格式返回數據



sprintf — 按照要求對數據進行返回,但是不輸出
    可表示類型如下:
    string s 
    integer d, u, c, o, x, X, b  
    double g, G, e, E, f, F  
    eg.
    $num = 5;
    $location = 'tree';
    $format = 'There are %d monkeys in the %s';
    echo sprintf($format, $num, $location);





 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!