2012-01-10 17 views
6

मैं folowing संरचना के साथ तार:विभाजक से पहले पहली स्ट्रिंग प्राप्त करें?

7_string_12 
7_string2_122 
7_string3_1223 

मैं कैसे से पहले दूसरी स्ट्रिंग प्राप्त कर सकते हैं "_"?

मैं अपने अंतिम परिणाम होना चाहते हैं:

7_string 
7_string2 
7_string3 

मैं विस्फोट उपयोग कर रहा हूँ ('_', $ स्ट्रिंग) और पहले दो मूल्यों गठबंधन है, लेकिन मेरी स्क्रिप्ट बहुत धीमी गति से हो गया था!

उत्तर

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

गूँज

7_string 

कोई बात नहीं क्या स्ट्रिंग

+0

धन्यवाद! मेरे पास एक और सवाल है! मुझे निम्नलिखित परिणाम दिखाने के लिए यह कोड कैसे बनाएं: स्ट्रिंग? यह विभाजक के बीच स्ट्रिंग दिखाना है। अग्रिम में धन्यवाद ! – dido

+0

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

+0

कृपया ध्यान दें, 'substr ($ str, 0, strrpos ($ str,' _ '))' ठीक है अगर इनपुट' 7_string2_abc_123' जैसा नहीं है। क्योंकि आउटपुट '7_string2_abc' होगा। – yasouser

0

की शुरुआत में है यह हमेशा 7_ साथ शुरू होता है, तो आप इस कोशिश कर सकते हैं:

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

strpos() अक्षर 3 से शुरू होने वाले पहले _ की खोज (स्ट्रिंग से = एस)। फिर आप पहले अक्षर से शुरू होने वाली पूरी स्ट्रिंग को स्ट्रॉप्स() द्वारा लौटाए गए वर्ण का चयन करने के लिए substr() का उपयोग करते हैं।

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

धारणा है कि पहला टोकन हमेशा एक चरित्र लंबा होता है थोड़ा खतरनाक होता है। –