I folowing構造を持つ文字列を持っている:私は2番目の前に文字列を取得できますかセパレータの前に最初の文字列を取得しますか?
7_string_12
7_string2_122
7_string3_1223
"_"?私は私の最終的な結果になりたい
:
7_string
7_string2
7_string3
私は(「_」、$文字列)を爆発し、最初の2つの値を組み合わせて使用していますが、私のスクリプトは非常に遅かったです!
I folowing構造を持つ文字列を持っている:私は2番目の前に文字列を取得できますかセパレータの前に最初の文字列を取得しますか?
7_string_12
7_string2_122
7_string3_1223
"_"?私は私の最終的な結果になりたい
:
7_string
7_string2
7_string3
私は(「_」、$文字列)を爆発し、最初の2つの値を組み合わせて使用していますが、私のスクリプトは非常に遅かったです!
$str = '7_string_12';
echo substr($str,0,strrpos($str,'_'));
はエコー
7_string
に関係なく、それは常に7_で始まる場合、文字列
の初めに、あなたがこの試すことができているもの:
$string = substr($text, 0, strpos($text, '_', 2));
strpos()を文字3から始まる最初の_(文字列から= s)を検索します。次に、substr()を使用して、最初の文字からstrpos()によって返された文字までの文字列全体を選択します。
$s1 = '7_string_12';
echo substr($s1, 0, strpos($s1, '_', 2));
最初のトークンが常に1文字長であるという前提は少し危険です。 –
ありがとうございます!私は別の質問があります!どのように私に次の結果を示すためにこのコードを作る:文字列?これはセパレータ間の文字列を表示するためです。前もって感謝します ! – dido
@dilyan_kn 'preg_match( '/ _(\ S +)_ /'、$ str、$ m); echo $ m [1]; ' – k102
入力が' 7_string2_abc_123'のようなものでない場合、 'substr($ str、0、strrpos($ str、 '_'))'はOKです。出力は '7_string2_abc'になるからです。 – yasouser