關於PHP substr()函數的幾個程式

來源:互聯網
上載者:User

substr()函數是什嗎?substr() 函數是返回字串的一部分。關於PHP substr()函數寫的程式有很多,這篇主要就是介紹幾個用PHP substr()函數寫的程式。

文法:substr(string,start,length)。

string:必需。規定要返回其中一部分的字串。

start:必需。規定在字串的何處開始。正數 - 在字串的指定位置開始;負數 - 在從字串結尾的指定位置開始;0 - 在字串中的第一個字元處開始。

charlist:可選。規定要返回的字串長度。預設是直到字串的結尾。正數 - 從 start 參數所在的位置返回;負數 - 從字串末端返回。

注釋:如果 start 是負數且 length 小於等於 start,則 length 為 0。

Program List:負值的start參數

1    <?php    2        $rest = substr("abcdef", -1);    // returns "f"    3        echo $rest.'<br />';    4        $rest = substr("abcdef", -2);    // returns "ef"    5        echo $rest.'<br />';    6        $rest = substr("abcdef", -3, 1); // returns "d"    7        echo $rest.'<br />';    8    ?>

程式運行結果:

1 f

2 ef

3 d

Program List:負值的length參數

就是從start位置開始,若length為負值的話,就從字串的末尾開始數。substr("abcdef", 2, -1)的話,就是從c開始,然後-1說明截取到e,就是要截取cde。

01    <?php    02        $rest = substr("abcdef", 0, -1);  // returns "abcde"    03        echo $rest.'<br />';    04        $rest = substr("abcdef", 2, -1);  // returns "cde"    05        echo $rest.'<br />';    06        $rest = substr("abcdef", 4, -4);  // returns ""    07        echo $rest.'<br />';    08        $rest = substr("abcdef", -3, -1); // returns "de"    09        echo $rest.'<br />';    10    ?>

程式運行結果:

1 abcde

2 cde

3 de

Program List:基本的substr()函數用法

01    <?php    02    echo substr('abcdef', 1);     // bcdef    03    echo '<br />';    04    echo substr('abcdef', 1, 3);  // bcd    05    echo '<br />';    06    echo substr('abcdef', 0, 4);  // abcd    07    echo '<br />';    08    echo substr('abcdef', 0, 8);  // abcdef    09    echo '<br />';    10    echo substr('abcdef', -1, 1); // f    11    echo '<br />';    12    // Accessing single characters in a string    13    // can also be achieved using "square brackets"    14    $string = 'abcdef';    15    echo $string[0];                 // a    16    echo '<br />';    17    echo $string[3];                 // d    18    echo '<br />';    19    echo $string[strlen($string)-1]; // f    20    echo '<br />';    21    ?>

程式運行結果:

1 bcdef

2 bcd

3 abcd

4 abcdef

5 f

6 a

7 d

8 f

Program List:移除尾碼

01    <?php    02    //removes string from the end of other    03    function removeFromEnd($string, $stringToRemove)    04    {    05        // 獲得需要移除的字串的長度    06        $stringToRemoveLen = strlen($stringToRemove);    07        // 獲得原始字串的長度    08        $stringLen = strlen($string);    09    10        // 計算出需要保留字元串的長度    11        $pos = $stringLen - $stringToRemoveLen;    12    13        $out = substr($string, 0, $pos);    14        return $out;    15    }    16    $string = 'nowamagic.jpg.jpg';    17    $result = removeFromEnd($string, '.jpg');    18    echo $result;    19    ?>

程式運行結果:

1 nowamagic.jpg

Program List:太長的字串只顯示首尾,中間用省略符號代替

01    <?php    02    $file = "Hellothisfilehasmorethan30charactersandthisfayl.exe";    03    function funclongwords($file)    04    {    05        if (strlen($file) > 30)    06        {    07            $vartypesf = strrchr($file,".");    08            // 擷取字元創總長度    09            $vartypesf_len = strlen($vartypesf);    10            // 截取左邊15個字元    11            $word_l_w = substr($file,0,15);    12            // 截取右邊15個字元    13            $word_r_w = substr($file,-15);    14            $word_r_a = substr($word_r_w,0,-$vartypesf_len);    15            return $word_l_w."...".$word_r_a.$vartypesf;    16        }    17        else    18            return $file;    19    }    20    // RETURN: Hellothisfileha...andthisfayl.exe    21    $result = funclongwords($file);    22    echo $result;    23    ?>

程式運行結果:

1 Hellothisfileha...andthisfayl.exe

Program List:將多出的文字顯示為省略符號

很多時候我們需要顯示固定的字數,多出的字數用省略符號代替。

01    <?php    02    $text = 'welcome to nowamagic, I hope you can find something you wanted.';    03    $result = textLimit($text, 30);    04    echo $result;    05    function textLimit($string, $length, $replacer = '...')    06    {    07        if(strlen($string) > $length)    08        return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer;    09    10        return $string;    11    }    12    ?>

程式運行結果:

1 welcome to nowamagic, I hope...

Program List:格式化字串

有時候我們需要格式化字串,比如電話號碼。

01    <?php    02    function str_format_number($String, $Format)    03    {    04        if ($Format == '') return $String;    05        if ($String == '') return $String;    06        $Result = '';    07        $FormatPos = 0;    08        $StringPos = 0;    09        while ((strlen($Format) - 1) >= $FormatPos)    10        {    11            //If its a number => stores it    12            if (is_numeric(substr($Format, $FormatPos, 1)))    13            {    14                $Result .= substr($String, $StringPos, 1);    15                $StringPos++;    16            //If it is not a number => stores the caracter    17            }    18            else    19            {    20                $Result .= substr($Format, $FormatPos, 1);    21            }    22            //Next caracter at the mask.    23            $FormatPos++;    24        }    25        return $Result;    26    }    27    // For phone numbers at Buenos Aires, Argentina    28    // Example 1:    29        $String = "8607562337788";    30        $Format = "+00 0000 0000000";    31        echo str_format_number($String, $Format);    32        echo '<br />';    33    // Example 2:    34        $String = "8607562337788";    35        $Format = "+00 0000 00.0000000";    36        echo str_format_number($String, $Format);    37        echo '<br />';    38    // Example 3:    39        $String = "8607562337788";    40        $Format = "+00 0000 00.000 a";    41        echo str_format_number($String, $Format);    42        echo '<br />';    43    ?>

程式運行結果:

1 +86 0756 2337788

2 +86 0756 23.37788

3 +86 0756 23.377 a

幾個簡單的PHP substr()函數小程式,但是還是要得我們去理解,自己跟上思路才能順藤摸瓜寫出更好的程式來。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.