Home >Backend Development >PHP Tutorial >How to intercept the specified part of the string by symbol in PHP (code)

How to intercept the specified part of the string by symbol in PHP (code)

不言
不言Original
2018-09-12 16:42:454230browse

The content of this article is about how PHP implements interception of specified parts of strings by symbols (code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

String interception is commonly used in PHP development;
And there are many kinds of requirements for interception;
For example, the operation of url links

Sometimes we want to Intercept the number after the last slash '/';
Sometimes we need to intercept the content before the first slash '/' to determine whether the url link entered by the user contains http://, etc.;

There are many php built-in functions for intercepting strings;
A simple example is as follows;

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

Intercept the content before the first slash It can be like this:

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

or

1 $array=explode('/', $str);
2 echo $array[0];
3 // 输出 123

The content after the first slash can be intercepted like this:

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

If you know the slash The number of

1 $array=explode('/', $str);
2 echo $array[3];
3 //输出 abc

What if you don’t know how many slashes there are? What if you want the content between the second slash and the third slash?
The following function can easily solve all the above problems;

/**
 * 按符号截取字符串的指定部分
 * @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 &#39;error&#39;;
        }else{
            return $new_array[$abs_number-1];
        }
    }else{
        if($number>=$length){
            return &#39;error&#39;;
        }else{
            return $array[$number];
        }
    }
}

Example

1 echo cut_str($str,&#39;/&#39;,0); //输出 123
2 echo cut_str($str,&#39;/&#39;,2); //输出 789
3 echo cut_str($str,&#39;/&#39;,-1);//输出 abc
4 echo cut_str($str,&#39;/&#39;,-3);//输出 456

Related recommendations:

PHP intercepts the specified part of the string according to symbols

php code for intercepting the string according to the specified length

The above is the detailed content of How to intercept the specified part of the string by symbol in PHP (code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn