Wie bekomme ich nur eine bestimmte Anzahl von Wörtern aus einem String in PHP?

7

Hier ist, was ich versuche zu tun. Ich habe einen Block Text und ich möchte die ersten 50 Wörter aus der Zeichenfolge extrahieren, ohne die Wörter in der Mitte abzuschneiden. Deshalb würde ich Wörter bevorzugen, die Zeichen gegenüberstehen, dann könnte ich einfach eine left () -Funktion verwenden.

Ich weiß, dass die Funktion str_word_count ($ var) die Anzahl der Wörter in einer Zeichenkette zurückgibt, aber wie würde ich nur die ersten 50 Wörter zurückgeben?

Ich werde mich voll und ganz mit PHP befassen und bin mit vielen der String-Funktionen noch nicht vertraut.

Vielen Dank im Voraus, Jason

    
JasonBartholme 11.07.2009, 04:25
quelle

6 Antworten

15

Ich würde empfehlen, die Anzahl der Wörter als Basis zu verwenden. Sie könnten leicht mit viel weniger oder viel mehr Daten enden, als Sie anzeigen wollten.

Ein Ansatz, den ich in der Vergangenheit benutzt habe, besteht darin, nach einer gewünschten Länge zu fragen, aber achte darauf, dass kein Wort abgeschnitten wird. Hier ist etwas, das für Sie arbeiten könnte:

%Vor%

Wenn Sie 1 als zweiten Parameter an str_word_count übergeben, wird ein Array mit allen Wörtern zurückgegeben, und Sie können die Array-Manipulation verwenden. Außerdem könntest du obwohl es etwas hackey ist, die Zeichenkette auf Leerzeichen explodieren lassen usw. Aber das bringt viel Platz für Fehler, wie Dinge, die nicht Wörter sind, die als Wörter gezählt werden.

PS. Wenn Sie eine Unicode-sichere Version der obigen Funktion benötigen und entweder die Erweiterungen mbstring oder iconv installiert haben, ersetzen Sie einfach alle Zeichenfolgenfunktionen durch ihre entsprechenden mb_ oder iconv_ .

    
jason 11.07.2009, 04:39
quelle
8

str_word_count verwendet einen optionalen Parameter, der angibt, was zurückgegeben werden soll.

Gibt ein Array von Strings zurück, die die Wörter sind:

%Vor%

Dann können Sie Dinge mit etwas wie:

aufteilen %Vor%     
geofflane 11.07.2009 04:36
quelle
3

Sind Sie sicher, dass Sie eine bestimmte Anzahl von Wörtern haben möchten? Wenn Sie etwas wie eine "Vorschau" machen, ist es im Allgemeinen besser, etwas wie "Bis zu 300 Zeichen, abgeschnitten an einer Wortgrenze" zu machen. In diesem Fall können Sie etwas wie:

verwenden %Vor%     
Zarel 11.07.2009 04:38
quelle
2

Ich habe einen einfacheren Weg gefunden:

function get_len_of_word($str,$number) { $array_str = explode(" ", $str); if(isset($array_str[$number])) { return implode(" ",array_slice($array_str, 0, $number)); } return $str; }

    
Fazle Elahee 19.07.2011 20:28
quelle
1

Hier ist ein weiteres Beispiel,

%Vor%     
Vipin Kohli 14.10.2014 13:05
quelle
0
%Vor%

Benutze es so:

%Vor%

Ausgabe: Lorem ipsum dolor sit amet

Diese Funktion funktioniert auch sehr gut mit Unicode-Zeichen wie arabischen Zeichen.

%Vor%

Ausgabe: نموذج لنص عربي الغرض منه توضيح كيف يمكن استخلاص أول عدد معين من الكلمات الموجودة فى نص معين.

    
Amr 23.11.2015 14:23
quelle

Tags und Links