php字符串截取的3個簡單方法
一、strstr獲取指定字符串之后或之前所有字符
1、使用 strstr("原始字符","指定的字符",布爾值)
布爾值為可選,為 true 返回第一次出現(xiàn)之前的字符串部分,默認為false 返回 返回第一次出現(xiàn)之前的字符串部分 strchr與strstr一樣,strstr不區(qū)分大小寫。
echo strstr("歡迎來到我們的官方網(wǎng)站","官方"); //輸出結(jié)果:官方網(wǎng)站 echo strstr("歡迎來到我們的官方網(wǎng)站","官方",true); //輸出結(jié)果:歡迎來到我們的
該方法輸出指定字符之后的內(nèi)容時會包含指定的字符串一起輸出
二、substr函數(shù)截取字符串中的某部分
1、substr或指定字符串最后一次出現(xiàn)之前的內(nèi)容
$test = '/home/test/test.txt'; $result = substr($test,0,strrpos($test,"/")); echo $result; //輸出結(jié)果:/home/test
2、substr或指定字符串最后一次出現(xiàn)之后的內(nèi)容
$number = '/home/test/test.txt'; $result = substr($number,strripos($number,"/")+1); echo $result; //輸出結(jié)果:test.txt
3、substr("原始字符",開始截取的位置 ,截取的字符長度)
echo substr("Welcome to our official website",5); //輸出結(jié)果: me to our official website echo substr("Welcome to our official website",5,2); //輸出結(jié)果: me echo substr("Welcome to our official website",-5); //從右至左截取5個字符 //輸出結(jié)果: bsite
該方法截取中文字符時會出現(xiàn)問題,一個漢字占用三個字節(jié)
三、使用mb_substr()函數(shù)取字符串中的某部分 (中文截取推薦)
mb_substr("原始字符",開始截取的位置 ,截取的字符長度,"字符串編碼") 該方法與substr類似多了個字符串編碼選取,解決了截取中文字符出錯得問題。(必須設(shè)置截取長度)
echo mb_substr("歡迎來到我們的官方網(wǎng)站",5,3,"utf-8"); //第5個字符開始,截取三個字符 //輸出結(jié)果:們的官
補充知識:PHP substr()截取字符串詳解
substr() 函數(shù)可以從字符串的指定位置截取一定長度的字符,這段被截取的字符可稱為“子串”或者“子字符串”,其語法格式如下:
substr($string, $start [, $length])
參數(shù)說明如下:
- $string:需要截取的字符串,該字符串至少含有一個字符;
- $start:截取字符串的起始位置;
- 如果 $start 是非負數(shù),那么字符串將從 $string 的第 $start 個字符處開始截取,$start 從 0 開始計算。例如在字符串“abcdef”中,在 0 位置的字符是“a”,在 2 位置的字符串是 “c” 等等;
- 如果 $start 是負數(shù),那么字符串將從 $string 結(jié)尾處向前數(shù)第 $start 個字符開始,$start 從 -1 開始計算。例如在字符串“abcdef”中,在 -1 位置的字符是“f”,在 -3 位置的字符是“d”等等;
- 如果 $string 的長度小于 $start,將返回 FALSE。
- $length:可選參數(shù),表示截取字符串的長度。
- 如果 $length 為正數(shù),那么字符串將從 $start 位置向后截取最多 $length 個字符;
- 如果 $length 為負數(shù),那么 $string 末尾的 $length 個字符將會被省略(若 $start 是負數(shù)則從字符串尾部算起);
- 如果 $length 的值為 0,F(xiàn)ALSE 或 NULL,那么將返回一個空字符串;
- 如果沒有提供 $length,那么返回的子字符串將從 $start 位置開始直到字符串的結(jié)尾。
【示例】使用 substr() 函數(shù),截取指定長度的字符串。
<?php $str = 'http://c.biancheng.net/php/'; echo substr($str, 7).'<br>'; echo substr($str, -5).'<br>'; echo substr($str, 7, 15).'<br>'; echo substr($str, 7, -5).'<br>'; echo substr($str, -20, -5).'<br>'; echo substr($str, -20, 15).'<br>'; var_dump(substr($str, 30)); echo '<br>'; var_dump(substr($str, 7, 0)); ?>
運行結(jié)果如下:
c.biancheng.net/php/
/php/
c.biancheng.net
c.biancheng.net
c.biancheng.net
c.biancheng.net
bool(false)
string(0) ""
substr() 函數(shù)對英文的處理是沒有任何問題的,但是在開發(fā)中我們往往是處理中文字符比較多,substr() 函數(shù)雖然也能處理中文,但是不是很完美。
總結(jié)
到此這篇關(guān)于php字符串截取的3個簡單方法的文章就介紹到這了,更多相關(guān)php字符串截取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php 函數(shù)中靜態(tài)變量使用的問題實例分析
這篇文章主要介紹了php 函數(shù)中靜態(tài)變量使用的問題,結(jié)合實例形式分析了php 函數(shù)中靜態(tài)變量使用過程中遇到的問題,以及相關(guān)操作注意事項,需要的朋友可以參考下2020-03-03php比較多維數(shù)組中值的大小排序?qū)崿F(xiàn)代碼
php中根據(jù)數(shù)組的鍵(key)進行比較,排序,有很多內(nèi)置函數(shù)可以輕松解決,如krsort(), ksort()等。如果是根據(jù)數(shù)組的值(value)進行比較就麻煩一些2012-09-09PHP中判斷文件存在使用is_file還是file_exists?
這篇文章主要介紹了PHP中判斷文件存在使用is_file還是file_exists?本文使用一個測試程序證明使用哪個函數(shù)比較好,需要的朋友可以參考下2015-04-04PHP的構(gòu)造方法,析構(gòu)方法和this關(guān)鍵字詳細介紹
這篇文章介紹了PHP的構(gòu)造方法,析構(gòu)方法和this關(guān)鍵字,有需要的朋友可以參考一下2013-10-10