PHP截取指定字符串(可中文)前后的内容,并不包含指定字符串

∫`不撒娇的折耳猫 2020-4-23 1384

找了一些方法,总结最简单的如下:

1、单个字符:‘-’

        header("Content-type:text/html;charset=utf-8");
        $str = '我爱我哥-我爱木兰';
        $newStr1 = substr($str,strpos($str,'-')+1);
        dump($newStr1);//输出:string(12) "我爱木兰"
        $newStr2 = substr($str,0,strpos($str,'love'));
        dump($newStr2);//输出:string(12) "我爱我哥"

2、字符串:‘love’

        $str = '我爱我哥love我爱木兰';
        $newStr1 = substr($str,strpos($str,'love')+4);
        dump($newStr1);//输出:string(12) "我爱木兰"
        $newStr2 = substr($str,0,strpos($str,'love'));
        dump($newStr2);//输出:string(12) "我爱我哥"

3、汉字:‘珊’

        $str = '我爱我哥珊我爱木兰';
        $newStr1 = substr($str,strpos($str,'珊')+3);//这里的3字符,可能会有差异,可以试一下,我的电脑是3个字符
        dump($newStr1);//输出:string(12) "我爱木兰"
        $newStr2 = substr($str,0,strpos($str,'珊'));
        dump($newStr2);//输出:string(12) "我爱我哥"

4、另外一种汉字方法

函数 strstr(),但是截取下来发现会包含指定字符串,大家如果有需要包含指定字符,可以使用这个函数。然后下面的方法是根据这个函数研究出来的不包含指定字符的方法

//方法一
$allString = "在线看我和我的祖国";
$searchString = "在线看";
$newString = strstr($allString, $searchString);
$length = strlen($searchString);
echo substr($newString, $length);

//方法二
$allString = "在线看我和我的祖国";
$searchString = "在线看";
$firstLength = strpos($allString, $searchString);
$length = $firstLength + strlen($searchString);
echo substr($allString, $length);


输出均是:我和我的祖国


大家可以根据需要选取自己想要的。

最新回复 (0)
发新帖