2012-01-10 20 views
6

ho stringhe con struttura folowing:Ottieni la prima stringa prima del separatore?

7_string_12 
7_string2_122 
7_string3_1223 

Come posso ottenere stringa prima seconda "_"?

voglio che il mio risultato finale di essere:

7_string 
7_string2 
7_string3 

Sto usando explode ('_', $ string) e combinare primi due valori, ma il mio script era molto lento!

risposta

8
$str = '7_string_12'; 
echo substr($str,0,strrpos($str,'_')); 

echi

7_string 

non importa ciò che è all 'inizio della stringa

+0

Grazie! Ho un'altra domanda! Come fare questo codice per mostrarmi il seguente risultato: stringa? Questo è per mostrare la stringa tra i separatori. Grazie in anticipo ! – dido

+0

@dilyan_kn 'preg_match ('/ _ (\ S +) _ /', $ str, $ m); echo $ m [1]; ' – k102

+0

Si noti che' substr ($ str, 0, strrpos ($ str, '_')) 'è OK se l'input non è come' 7_string2_abc_123'. Perché l'output sarà '7_string2_abc'. – yasouser

0

Se inizia sempre con 7_ si può provare questo:

$string = substr($text, 0, strpos($text, '_', 2)); 

I strpos() cerca il primo _ a partire dal carattere 3 (= s dalla stringa). Quindi si utilizza substr() per selezionare l'intera stringa a partire dal primo carattere fino al carattere restituito da strpos().

1
$s1 = '7_string_12'; 
echo substr($s1, 0, strpos($s1, '_', 2)); 
+0

L'ipotesi che il primo token sia sempre un carattere lungo è un po 'pericoloso. –

Problemi correlati