174

文字列があり、特定の値の後にすべてを取得したいと考えています。文字列は常に一連の数字とアンダースコアで始まります。アンダースコアの後の残りの文字列を取得したいと思います。たとえば、次の文字列があり、何を返したいか:

"123_String" -> "String"
"233718_This_is_a_string" -> "This_is_a_string"
"83_Another Example" -> "Another Example"

どうすればこのようなことをすることができますか?

4

9 に答える 9

400

はアンダーstrpos()スコアのオフセットを検出し、substr はそのインデックスに 1 を加えたものからすべてを取得します。

$data = "123_String";    
$whatIWant = substr($data, strpos($data, "_") + 1);    
echo $whatIWant;

アンダースコア文字 ( ) を取得する前に文字列に存在するかどうかも確認したい場合は_、次を使用できます。

if (($pos = strpos($data, "_")) !== FALSE) { 
    $whatIWant = substr($data, $pos+1); 
}
于 2012-07-10T01:38:39.883 に答える
5

strrchr() を使用します。たとえば、ファイルの拡張子を見つけるには、次の関数を使用します。

$string = 'filename.jpg';
$extension = strrchr( $string, '.'); //returns "jpg"
于 2020-07-23T13:03:52.907 に答える