美文网首页
php字符截取

php字符截取

作者: myloves008 | 来源:发表于2019-08-20 15:23 被阅读0次

    substr($str,strpos($str,"_");               //"_"为某个字符串

    有时我们想截取最后一个斜杠'/'后面的数字;

    有时我们又需要截取第一个斜杠'/'前面的内容判断用户输入的url链接带不带http://等等;

    字符串的截取php内置函数就有很多种;

    简单的写几个示例;

    $str='123/456/789/abc';

    PHP

    Copy

    截取第一个斜杠前面的内容可以这样来:

    echo substr($str,0,strpos($str, '/'))

    PHP

    Copy

    或者

    $array=explode('/', $str);

    echo $array[0];

    // 输出 123

    PHP

    Copy

    截取第一个斜杠后面的内容可以这样来:

    echo substr($str,strpos($str,'/')+1);

    //输出 456/789/abc

    PHP

    Copy

    截取最后一个斜杠后面的内容可以这样来:

    echo trim(strrchr($str, '/'),'/');

    PHP

    Copy

    或者如果知道斜杠的个数

    $array=explode('/', $str);

    echo $array[3];

    //输出 abc

    PHP

    Copy

    但是问题来了;如果不知道有多少个斜杠呢?如果想要第二个斜杠和第三个斜杠中间的内容呢?

    下面我写的这个函数就可以轻松解决如上 所有问题;

    /**

     * 按符号截取字符串的指定部分

     * @param string $str 需要截取的字符串

     * @param string $sign 需要截取的符号

     * @param int $number 如是正数以0为起点从左向右截  负数则从右向左截

     * @return string 返回截取的内容

     */

    function cut_str($str,$sign,$number){

        $array=explode($sign, $str);

        $length=count($array);

        if($number<0){

            $new_array=array_reverse($array);

            $abs_number=abs($number);

            if($abs_number>$length){

                return 'error';

            }else{

                return $new_array[$abs_number-1];

            }

        }else{

            if($number>=$length){

                return 'error';

            }else{

                return $array[$number];

            }

        }

    }

    PHP

    Copy

    示例:

    echo cut_str($str,'/',0); //输出 123

    echo cut_str($str,'/',2); //输出 789

    echo cut_str($str,'/',-1);//输出 abc

    echo cut_str($str,'/',-3);//输出 456

    相关文章

      网友评论

          本文标题:php字符截取

          本文链接:https://www.haomeiwen.com/subject/ebepsctx.html