2010-05-26 12 views
10

स्ट्रिंग के पहले 5 शब्द प्राप्त करने का सबसे अच्छा तरीका क्या है? कैसे कर सकते हैं मैं इस तरह से पहले सबस्ट्रिंग मूल स्ट्रिंग और दूसरा-स्ट्रिंग के पहले 5 शब्द है कि दो भागों में विभाजित स्ट्रिंग मूल स्ट्रिंगPHP स्ट्रिंग के पहले 5 शब्द प्राप्त करने का सबसे अच्छा तरीका क्या है?

+0

यदि आप वास्तव में केवल * शब्द * चाहते हैं, तो ['s ($ str) -> शब्द (5)'] (https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/ src/Str.php # L363), जैसा कि [इस स्टैंडअलोन लाइब्रेरी] में पाया गया है (https://github.com/delight-im/PHP-Str)। – caw

उत्तर

37
$pieces = explode(" ", $inputstring); 
$first_part = implode(" ", array_splice($pieces, 0, 5)); 
$other_part = implode(" ", array_splice($pieces, 5)); 

explode टूटता मूल के बाकी का गठन किया शब्दों की एक सरणी में स्ट्रिंग, array_splice आपको उन शब्दों की कुछ श्रेणियां प्राप्त करने देता है, और फिर implode श्रेणियों को एक साथ स्ट्रिंग में जोड़ती है।

+7

जब आपको आवश्यकता नहीं है तो विस्फोट को बचाने के लिए 'विस्फोट ("", $ इनपुटस्ट्रिंग, 6)' का उपयोग करें। – salathe

5
<?php 
$words = explode(" ", $string); 
$first = join(" ", array_slice($words, 0, 5)); 
$rest = join(" ", array_slice($words, 5)); 
+2

'str_split' ऐसा नहीं करता जो आपको लगता है कि यह करता है। – Amber

+1

@Amber के साथ सहमत, 'str_split' पहले सरणी को एक सरणी में परिवर्तित करता है, [इसमें संकेतित एक जैसा हस्ताक्षर नहीं है] (http://php.net/manual/en/function.str-split। PHP) –

+0

धन्यवाद। मुझे आमतौर पर 'str_split' और' विस्फोट 'मिश्रित मिलता है। मामूली निगरानी तय की। – Kenaniah

15

निम्नलिखित शब्द के रूप में परिभाषित करने पर दृढ़ता से निर्भर करता है लेकिन यह सादे explode -ing से दूर दूसरी दिशा में है।

$phrase = "All the ancient classic fairy tales have always been scary and dark."; 
echo implode(' ', array_slice(str_word_count($phrase, 2), 0, 5)); 

देता

सभी प्राचीन क्लासिक परी


एक अन्य विकल्प है, क्योंकि हर कोई regex प्यार करता है, हो सकता है कुछ की तरह:

preg_match('/^(?>\S+\s*){1,5}/', $phrase, $match); 
echo rtrim($match[0]); 
+0

उत्तरार्द्ध terse है। +1 –

+0

यह मेरे लिए काम किया, धन्यवाद –

0
implode(' ', array_slice(explode(' ', $contents), 0, 5)); 

नोट: आखिरी बार आप 0 देख सकते हैं, 10 यह प्रारंभ शब्द से 10 वें शब्द तक प्रिंट करेगा, ताकि आप शब्द से कुल शब्द तक शुरू करना चाहते हैं।

+0

रिक्त स्थान विस्फोट करने के लिए पर्याप्त नहीं है। – 4EACH

संबंधित मुद्दे

 संबंधित मुद्दे