• 技术文章 >后端开发 >php教程

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

    小云云小云云2017-11-11 11:02:33原创1100

    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()函数小程序,但是还是要得我们去理解,自己跟上思路才能顺藤摸瓜写出更好的程序来。

    相关推荐:

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

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

    php substr()函数的用法

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

    php substr中文乱码解决办法

    以上就是关于PHP substr()函数的几个程序的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:substr php 程序
    上一篇:php正则表达式验证邮箱地址的案例 下一篇:php正则表达式中preg_match函数的详解
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP实现的拖拽图形验证,简单易用!• 一文聊聊php5.4的特性【总结】• PHP常量两种定义方法:define和const有什么区别• PHP实现LRU算法的示例代码• 详细介绍PHP中时间处理类Carbon的用法
    1/1

    PHP中文网