0

この文字列abc_123_testがあり、文字列から「テスト」だけを取得しようとしています。私は現在このコードを持っています。

$string = 'abc_123_test';

$extracted_string = substr( $string, 0, strrpos( $string, '_' ) );

ただし、これは文字列の最初の部分、「abc_123」までのすべてを取得します。だから、それは私が望んでいたものの逆のようです。strrposを使用すると、逆になりますが、明らかに何かが足りないと思いました。

何か助けはありますか?

4

9 に答える 9

5

strrpos 最後の文字列を探すという意味では逆になりますが、文字列の先頭からその時点まで部分文字列を実行しています。

次を使用できます。

substr ($string, strrpos( $string, '_' ) + 1 );

開始ビットではなく、文字列の最後のビットを取得します。これは、ファイナルの1つ先の位置から始まり_、長さを省略しているため、残りの文字列が得られます。

これを達成するためのより良い方法は間違いありませんが、substrとに制限している場合はstrrpos、これで問題なく動作します。

于 2013-02-01T05:53:34.063 に答える
2

試す:

array_pop(split('_', $string));

コードパッドの例:http : //codepad.org/JkOaS0oc

于 2013-02-01T05:51:29.633 に答える
2

代わりにexplodeを使用することをお勧めします。

echo end(explode('_', $string));
于 2013-02-01T05:53:14.467 に答える
2

これを試して:

 array_pop(explode('_', $string));
于 2013-02-01T05:54:40.677 に答える
1

explode()を使用してこの簡単な方法を試してください

$string = 'abc_123_test';
$string = explode('_',$string);
print_r($string);
echo $string[2]; //output test
于 2013-02-01T06:11:30.150 に答える
1

試す

substr( $string, strrpos( $string, '_' )+1)
于 2013-02-01T05:54:15.460 に答える
1

試す:

$ extract_string = substr($ string、strrpos($ string、'_')+ 1);

于 2013-02-01T05:54:34.877 に答える
1

以下のコードを使用する必要があると思います。

 $extracted_string = substr( $string, strrpos( $string, '_' )+1);

substr($ string、0、strrpos($ string、'_')); -これは0番目の位置から始まります。

于 2013-02-01T05:55:29.177 に答える
0

このコードを試して、次の文字列から「test」を取得できます

$string = 'abc_123_test';

echo substr($string,8,11);

幸運

于 2013-02-01T05:58:01.503 に答える