ホームページ  >  記事  >  バックエンド開発  >  PHPで文字列の指定部分をシンボルでインターセプトする方法(コード)

PHPで文字列の指定部分をシンボルでインターセプトする方法(コード)

不言
不言オリジナル
2018-09-12 16:42:454196ブラウズ

この記事の内容は、PHP が文字列の指定部分をシンボル (コード) でインターセプトする方法についての内容であり、一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。

文字列インターセプトは PHP 開発で一般的に使用されます;
そしてインターセプトにはさまざまな種類の要件があります;
たとえば、URL リンクの操作

時々インターセプトしたい場合があります。最後のスラッシュ '/' の後の数字;
ユーザーが入力した URL リンクに http:// などが含まれているかどうかを判断するために、最初のスラッシュ '/' より前のコンテンツをインターセプトする必要がある場合があります。 ##文字列をインターセプトするための php 組み込み関数が多数あります;

簡単な例は次のとおりです;


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

最初のスラッシュの前のコンテンツをインターセプトします次のようになります:

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

または


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

最初のスラッシュの後のコンテンツは次のようにインターセプトできます:

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

ご存知の場合スラッシュ


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

スラッシュの数がわからない場合はどうすればよいですか? 2 番目のスラッシュと 3 番目のスラッシュの間のコンテンツが必要な場合はどうすればよいでしょうか?

次の関数は、上記の問題をすべて簡単に解決できます;


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

関連する推奨事項:

PHP は記号に従って文字列の指定された部分をインターセプトします


PHP は記号に従って文字列をインターセプトするコード指定された長さ

以上がPHPで文字列の指定部分をシンボルでインターセプトする方法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。