php 截取字串有關問題

來源:互聯網
上載者:User
php 截取字串問題

在編程中經常與遇到將一個字串根據某個字元切分的問題。

一般我們會用explode將字串切分成一個數組,然後進行進一步的操作。

但假如有一個需求是要截取一個字串中某兩個相鄰的分割字元中間的字串,那麼用explode就顯得有點浪費了。

畢竟很多其他的被截取出來的字串用不到阿。浪費了空間也浪費了計算。


今天發現了一個方法,就是用preg_match。(如有雷同,實屬緣分)


具體方法是這樣的:

function getsubstr($str,$dec,$index){//擷取str中第index個分隔字元dec到第index+1個分隔字元之間的字串     $index+=1;     $a = '/^([^'.$dec.']*'.$dec.'){'.$index.'}/';     $match = Array();     preg_match($a,$str,$match);     if(isset($match[1])) return rtrim($match[1]);     return '';}
?

具體原理就不解釋了,大家都看的明白的。

?

此外另外的兩種方法分別是explode截取出字串數組,然後取值;以及迴圈遍曆字串,找到對應的兩個分隔字元的位置然後截取字串。

?

經過測試得到:

?

10w行記錄處理時間:

??? 本文方法?? : 1.3521399497986

??? explode ?? : 1.4456930160522

??? 迴圈遍曆?? : 1.4808049201965

?

測試結果顯示,10W行記錄處理時間最多相差0.1秒。

?

不知還有什麼其他方法?

1 樓 llh110220 2012-09-19

10萬行文本都在一個檔案中嗎?還是10w次迴圈時間

2 樓 liuzhiqiangruc 2012-09-19

llh110220 寫道

10萬行文本都在一個檔案中嗎?還是10w次迴圈時間


嗯,是的10w行都在一個文字檔中。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.