Maison >développement back-end >tutoriel php >Comment intercepter la partie spécifiée de la chaîne par symbole en PHP (code)

Comment intercepter la partie spécifiée de la chaîne par symbole en PHP (code)

不言
不言original
2018-09-12 16:42:454230parcourir

Le contenu de cet article explique comment PHP peut intercepter la partie spécifiée (code) d'une chaîne par symbole. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

L'interception de chaînes est couramment utilisée dans le développement PHP ;
Et il existe de nombreuses exigences pour l'interception
Par exemple, le fonctionnement des liens URL

Parfois, nous voulons intercepter le numéro ; après la dernière barre oblique '/';
Parfois, nous devons intercepter le contenu avant la première barre oblique '/' pour déterminer si le lien URL saisi par l'utilisateur contient http://, etc.; Il existe de nombreuses fonctions intégrées à php pour intercepter des chaînes ;

Un exemple simple est le suivant


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

Intercepter avant la première barre oblique Le contenu ; peut être comme suit :

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

ou


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

Pour capturer le contenu après la première barre oblique, vous pouvez faire ceci :

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

Et si vous connaissez le nombre de barres obliques


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

Et si vous ne savez pas comment y a-t-il beaucoup de barres obliques ? Et si vous voulez le contenu entre la deuxième et la troisième barre oblique ?

La fonction suivante peut facilement résoudre tous les problèmes ci-dessus


/**
 * 按符号截取字符串的指定部分
 * @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];
        }
    }
}

Exemple

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
Recommandations associées :

PHP intercepte la partie spécifiée de la chaîne selon les symboles


php intercepte la chaîne selon les symboles à la longueur spécifiée Code pour

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn