Get first string before separator?
11,981
Solution 1
$str = '7_string_12';
echo substr($str,0,strrpos($str,'_'));
echoes
7_string
no matter what's at the begining of the string
Solution 2
If it always starts with 7_ you can try this:
$string = substr($text, 0, strpos($text, '_', 2));
The strpos() searches for the first _ starting from character 3 (= s from string). Then you use substr() to select the whole string starting from the first character to the character returned by strpos().
Solution 3
$s1 = '7_string_12';
echo substr($s1, 0, strpos($s1, '_', 2));
Author by
dido
Updated on June 12, 2022Comments
-
dido almost 2 years
I have strings with folowing structure:
7_string_12 7_string2_122 7_string3_1223
How I can get string before second "_" ?
I want my final result to be :
7_string 7_string2 7_string3
I am using explode('_', $string) and combine first two values, but my script was very slow!
-
dido over 12 yearsThanks ! I've another question! How to make this code to show me the following result : string ? That is to show string between separators. Thanks in advance !
-
k102 over 12 years@dilyan_kn
preg_match('/_(\S+)_/',$str,$m); echo $m[1];
-
Shlomi Noach over 11 yearsThe assumption that the first token is always one character long is a bit dangerous.
-
yasouser over 10 yearsPlease note,
substr($str,0,strrpos($str,'_'))
is OK if the input isn't like7_string2_abc_123
. Because the output will be7_string2_abc
.