首頁 >後端開發 >PHP問題 >php中截取字串的方法有哪些

php中截取字串的方法有哪些

青灯夜游
青灯夜游原創
2021-07-23 19:37:2947535瀏覽

php截取方法:1、使用substr()截取,可以從字串的指定位置截取一定長度的字元;2、使用mb_substr()截取,該函數可以從一個字串中截取指定的一部分,不僅對英文字符有效,對中文字符同樣有效。

php中截取字串的方法有哪些

本教學操作環境:windows7系統、PHP7.1版,DELL G3電腦

1、使用substr()截取字串

substr() 函數可以從字串的指定位置截取一定長度的字符,這段被截取的字元可稱為“子字串”或“子字串”,其語法格式如下:

substr($string, $start [, $length])

參數說明如下:

  • $string:需要截取的字串,該字串至少含有一個字元;
  • $start:截取字串的起始位置;
    • 如果$start 是非負數,那麼字串將從$string 的第$start 個字元處開始截取,$start 從0 開始計算。例如在字串“abcdef”中,在0 位置的字元是“a”,在2 位置的字串是“c” 等等;
    • 如果$start 是負數,那麼字串會從$ string 結尾處向前數第$start 個字元開始,$start 從-1 開始計算。例如在字串“abcdef”中,在-1 位置的字元是“f”,在-3 位置的字元是“d”等等;
    • #如果$string 的長度小於$start,將傳回FALSE。
  • $length:可選參數,表示截取字串的長度。
    • 如果$length 為正數,那麼字串將從$start 位置向後截取最多$length 個字元;
    • 如果$length 為負數,那麼$string 末尾的$length 個字元將會被省略(若$start 是負數則從字串尾部算起);
    • 如果$length 的值為0,FALSE 或NULL,那麼將會傳回一個空字串;
    • 如果沒有提供$length,那麼傳回的子字串將從$start 位置開始直到字串的結尾。

範例:使用不同正負數的start 和length 參數

<?php
echo substr("Hello world",0,10)."<br>";
echo substr("Hello world",1,8)."<br>";
echo substr("Hello world",0,5)."<br>";
echo substr("Hello world",6,6)."<br>";
 
echo substr("Hello world",0,-1)."<br>";
echo substr("Hello world",-10,-2)."<br>";
echo substr("Hello world",0,-6)."<br>";
echo substr("Hello world",-2-3)."<br>";
?>

輸出:

Hello worl
ello wor
Hello
world
Hello worl
ello wor
Hello
world

2、使用mb_substr()截取中文字串

mb_substr() 函數可以從一個字串中截取指定的一部分,與substr() 函數不同的是,mb_substr() 函數不僅對英文字元有效,對中文字元同樣有效,其語法格式如下:

mb_substr($str , $start [, $length = NULL [, $encoding = mb_internal_encoding()]])

參數說明如下:

  • $str:待截取的字串,字串中至少包含一個字元;
  • $start:截取字串的起始位置;
    • 如果$start 為非負數,那麼字串會從$str 的第$start 個字元的位置開始截取;
    • 如果$start 是負數,那麼字串會從$str 結尾處向前數第$start 個字元的位置開始截取。
  • $length:可選參數,表示截取字串的長度;
    • 如果$length 為正數,那麼字串將從$start 位置向後截取最多$length 個字元;
    • 如果$length 為負數,那麼$string 末尾的$length 個字元將會被省略(若$start 是負數則從字串尾部算起);
    • 如果$length 的值NULL 或省略$length,則會截取到字串的結尾。
  • $encoding:可選參數,表示 $str 的字元編碼,如果省略,則使用內部字元編碼。

範例:使用mb_substr() 函數,截取指定長度的中文字串

<?php
    $str = &#39;欢迎访问PHP中文网,一个在线学习编程的网站。&#39;;
    echo mb_substr($str, 4).&#39;<br>&#39;;
    echo mb_substr($str, -19).&#39;<br>&#39;;
    echo mb_substr($str, 4, 6).&#39;<br>&#39;;
    echo mb_substr($str, 4, -16).&#39;<br>&#39;;
    echo mb_substr($str, -19, -13).&#39;<br>&#39;;
    echo mb_substr($str, -19, 6).&#39;<br>&#39;;
    var_dump(mb_substr($str, 40));
    echo &#39;<br>&#39;;
    var_dump(mb_substr($str, 4, null));
?>

運行結果如下:

PHP中文网,一个在线学习编程的网站。
PHP中文网,一个在线学习编程的网站。
PHP中文网
PHP
PHP中文网
PHP中文网
string(0) ""
string(55) "PHP中文网,一个在线学习编程的网站。"

推薦學習:《PHP影片教學

以上是php中截取字串的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:詳解php中的棧下一篇:詳解php中的棧