2010-05-26 14 views
10

Dizenin ilk 5 kelimesini almanın en iyi yolu nedir? Ben ilk alt dize orijinal dize ve ikinci alt dizenin ilk 5 kelime olduğunu şekilde ikiye bölünmüş dize Nasıl orijinal dizePHP Bir dizenin ilk 5 kelimesini almanın en iyi yolu nedir?

+0

Gerçekten * kelimeleri * Yalnızca, denemek isterseniz [ 'ler ($ str) -> kelimeleri (5)'] (https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/ [bu bağımsız kütüphane] 'de olduğu gibi src/Str.php # L363) (https://github.com/delight-im/PHP-Str). – caw

cevap

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

explode sonları orijinal kalanını teşkil Bir dizi kelime içine dize, array_splice, bu sözcüklerin belirli aralıklarını elde etmenizi sağlar ve daha sonra implode aralıkları tekrar tek dizelere birleştirir.

+7

İhtiyacınız olmadığında patlayan kaydetmek için 'patlatın ("", $ inputstring, 6) "ifadesini kullanın. – salathe

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

'str_split', düşündüğün şeyi yapmaz. – Amber

+1

@Amber ile anlaşıldı, 'str_split' bir argümana ilk argümanı çevirir, [burada belirtildiği gibi bir imzası yoktur] (http://php.net/manual/en/function.str-split. php) –

+0

Teşekkürler. Genelde str_split ve patlayabilirim. Küçük gözetim düzeltildi. – Kenaniah

15

Aşağıdakiler, kelime sözcükleri olarak tanımladığınız şeye güçlü bir şekilde bağlıdır ancak düz bir şekilde başka bir yöndedir, düz explode -ing'den uzaktadır.

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

verir

Tüm antik klasik peri


diğer alternatif, herkes normal ifade seviyor çünkü olurdu gibi bir şey:

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

İkincisi tersidir. +1 –

+0

bu benim için çalıştı, teşekkürler –

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

Not: Burada en son 0, 10'u görebiliyorsunuz, 10'dan başlayarak sözcükten başlıyor, böylece sözcükten toplam kelime sayısına başlamak istediğinizde düzeltebilirsiniz.

+0

Boşlukları patlatmaya yetecek kadar iyi değil. – 4EACH

İlgili konular