2012-01-10 28 views
6

Ben folowing yapısıyla dizeleri vardır: Ben ikinci önce dize nasıl alabilirimAyırıcıdan önce ilk dizeyi aldınız mı?

7_string_12 
7_string2_122 
7_string3_1223 

"_"? ($ Ip, '_') ve ilk iki değeri birleştirmek patlamak kullanıyorum

7_string 
7_string2 
7_string3 

ama benim senaryo çok yavaş:

benim nihai sonuç olmak istiyorum!

cevap

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

yankıları

7_string 

olursa olsun hep 7_ ile başlıyorsa dize

+0

Teşekkürler! Başka bir sorum var! Aşağıdaki kodu bana göstermek için bu kod nasıl yapılır: dize? Bu, ayırıcılar arasındaki dizgiyi göstermektir. Şimdiden teşekkürler ! – dido

+0

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

+0

Lütfen dikkat,' substr ($ str, 0, strrpos ($ str, '_')) ', giriş 7_string2_abc_123' gibi değilse Tamam. Çünkü çıktı "7_string2_abc" olacak. – yasouser

0

başında bu deneyebilirsiniz ne:

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

strpos() ilk 3 için karakter 3'ten başlayarak (dizeden = s) arar. Sonra, ilk karakterden strpos() tarafından döndürülen karaktere kadar tüm dizeyi seçmek için substr() öğesini kullanırsınız.

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

İlk belirtecin her zaman bir karakter uzunluğunda olduğu varsayımı biraz tehlikeli. –

İlgili konular