2010-11-19 53 views
36

何、このような文字列からのみimportant_stuff一部を取得するための最速の方法です:文字列から文字列の後に文字列を取得します

bla-bla_delimiter_important_stuff 

_delimiter_が常にあるが、しかし、文字列の残りの部分を変更することができます。ここで

+1

は、アンダースコアが文字通り存在するかどうかを介してsom混乱しているようです。以下の解決策はすべて良いです。 –

+0

['s($ str) - > afterFirst( '_delimiter_')'](https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L435)または ''($ str) - > afterLast( '_delimiter_') '](https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L445)を参考にしてください。 [このスタンドアロンライブラリ](https://github.com/delight-im/PHP-Str)にあります。 – caw

答えて

54

は:

$arr = explode('delimeter', $initialString); 
$important = $arr[1]; 
+1

シンプルで効果的な、良い答えです。 – jsims281

+6

PHP 5.4では...特にこのケースでは、次の1つのライナーを実行できます... '$ important = explode(" delimeter "、$ initialString)[1];' – zgr024

+5

参照解除のための3つの歓声! = D –

4
$string = "bla-bla_delimiter_important_stuff"; 
list($junk,$important_stufF) = explode("_delimiter_",$string); 

echo $important_stuff; 
> important_stuff 
+2

私はリストの使用が好きです。あなたが最初に配列を持っていたとき、あなたが知っていたPHPのpythonのような機能を私に見せてくれたと思いました! –

+0

cool。ありがとうございます:) – Alex

6
 
$importantStuff = array_pop(explode('_delimiter_', $string)); 
+1

これは、array_popが参照を使用するので、 'E_STRICT'エラー('厳密な標準:変数は参照によって渡されなければなりません ')を投げます。 –

30
$result = end(explode('_delimiter_', 'bla-bla_delimiter_important_stuff')); 
+0

非常にスマートなソリューション。 – andcl

+1

これは以下を投げます:厳格な基準:変数のみが参照渡しされるべきです。あなたは一時変数にexplode()を代入する必要があります。 –

4

私はこの方法が好き:文字列の末尾に区切りの端から

$str="bla-bla_delimiter_important_stuff"; 
$del="_delimiter_"; 
$pos=strpos($str, $del); 

切断

'0' の文字列の先頭のsubstrため

1)strpos &はstrlenのために多分1つの文字区切り文字を使用して)

2( '1' から始まる)文字列のサイズを取るのに対し:

ノート良いアイデア

関連する問題