Rumah >pembangunan bahagian belakang >tutorial php >关于PHP substr()函数的几个程序

关于PHP substr()函数的几个程序

小云云
小云云asal
2017-11-11 11:02:332064semak imbas

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.&#39;<br />&#39;;    
4        $rest = substr("abcdef", -2);    // returns "ef"    
5        echo $rest.&#39;<br />&#39;;    
6        $rest = substr("abcdef", -3, 1); // returns "d"    
7        echo $rest.&#39;<br />&#39;;    
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.&#39;<br />&#39;;    
04        $rest = substr("abcdef", 2, -1);  // returns "cde"    
05        echo $rest.&#39;<br />&#39;;    
06        $rest = substr("abcdef", 4, -4);  // returns ""    
07        echo $rest.&#39;<br />&#39;;    
08        $rest = substr("abcdef", -3, -1); // returns "de"    
09        echo $rest.&#39;<br />&#39;;    
10    ?>

程序运行结果:

1    abcde    

2    cde    

3    de    

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

01    <?php    
02    echo substr(&#39;abcdef&#39;, 1);     // bcdef    
03    echo &#39;<br />&#39;;    
04    echo substr(&#39;abcdef&#39;, 1, 3);  // bcd    
05    echo &#39;<br />&#39;;    
06    echo substr(&#39;abcdef&#39;, 0, 4);  // abcd    
07    echo &#39;<br />&#39;;    
08    echo substr(&#39;abcdef&#39;, 0, 8);  // abcdef    
09    echo &#39;<br />&#39;;    
10    echo substr(&#39;abcdef&#39;, -1, 1); // f    
11    echo &#39;<br />&#39;;    
12    // Accessing single characters in a string    
13    // can also be achieved using "square brackets"    
14    $string = &#39;abcdef&#39;;    
15    echo $string[0];                 // a    
16    echo &#39;<br />&#39;;    
17    echo $string[3];                 // d    
18    echo &#39;<br />&#39;;    
19    echo $string[strlen($string)-1]; // f    
20    echo &#39;<br />&#39;;    
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 = &#39;nowamagic.jpg.jpg&#39;;    
17    $result = removeFromEnd($string, &#39;.jpg&#39;);    
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 = &#39;welcome to nowamagic, I hope you can find something you wanted.&#39;;    
03    $result = textLimit($text, 30);    
04    echo $result;    
05    function textLimit($string, $length, $replacer = &#39;...&#39;)    
06    {    
07        if(strlen($string) > $length)    
08        return (preg_match(&#39;/^(.*)\W.*$/&#39;, 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 == &#39;&#39;) return $String;    
05        if ($String == &#39;&#39;) return $String;    
06        $Result = &#39;&#39;;    
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 &#39;<br />&#39;;    
33    // Example 2:    
34        $String = "8607562337788";    
35        $Format = "+00 0000 00.0000000";    
36        echo str_format_number($String, $Format);    
37        echo &#39;<br />&#39;;    
38    // Example 3:    
39        $String = "8607562337788";    
40        $Format = "+00 0000 00.000 a";    
41        echo str_format_number($String, $Format);    
42        echo &#39;<br />&#39;;    
43    ?>

程序运行结果:

1    +86 0756 2337788    

2    +86 0756 23.37788    

3    +86 0756 23.377 a    

几个简单的PHP substr()函数小程序,但是还是要得我们去理解,自己跟上思路才能顺藤摸瓜写出更好的程序来。

相关推荐:

php substr()函数处理中文详解

php substr()函数字符串截取用法实例讲解

php substr()函数的用法

有关php substr()函数的文章推荐10篇

php substr中文乱码解决办法

Atas ialah kandungan terperinci 关于PHP substr()函数的几个程序. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn