wie zählen Sie die Wörter in einem bestimmten string in PHP?
Möchte ich zum zählen der Wörter in eine bestimmte Zeichenfolge , so kann ich es prüfen und verhindern, dass Benutzer zu schreiben, mehr als 100 Wörter zum Beispiel .
Schrieb ich diese Funktion, aber ich glaube nicht, dass es effektiv genug ist , habe ich die Funktion auflösen mit Leerzeichen als Trennzeichen, was aber, wenn der Benutzer legt zwei Leerzeichen statt nur einem . können Sie mir einen besseren Weg das zu tun ?
function isValidLength($text , $length){
$text = explode(" " , $text );
if(count($text) > $length)
return false;
else
return true;
}
- Ich denke, das ist die Lösung für dein problem: reconn.us/count_words.html
- Klingt wie ein "wie viele Wörter in der Textdatei" Hausaufgaben problem für mich 😉
- stackoverflow.com/questions/21652261/...
- Vielleicht finden Sie
count(s($str)->words())
hilfreich, wie in diese standalone-Bibliothek.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht
str_word_count
helfen könntehttp://php.net/manual/en/function.str-word-count.php
str_word_count
. Ist es nicht angemessen?str_word_count()
ist immer Rückkehr 1 aus irgendeinem GrundKönnen Sie die eingebaute PHP-Funktion
str_word_count
. Verwenden Sie es wie diese:Dieser Ausgabe 5.
Wenn Sie planen, auf die Verwendung von Sonderzeichen in jedem Ihrer Worte, die Sie liefern können beliebige zusätzliche Zeichen als Dritten parameter.
Dieser Ausgabe 6.
makeBlog()
Funktion fehlt noch.2
🙂 Die $charlist-parameter funktioniert nicht gut mit multibyte Zeichen.post_reply_to_latest_stackoverflow_comment(':P');
.Versuchen Sie dies:
Dieser Ausgabe:
5
return count(explode(' ', preg_replace('/\s+/', ' ', trim($string))));
.Diese Funktion verwendet einen einfachen regex zum splitten der Eingabe von $text in einem nicht-Buchstaben-Zeichen:
Dadurch wird sichergestellt, dass ist korrekt, funktioniert mit Worten, getrennt durch mehrere Leerzeichen oder andere nicht-Buchstaben-Zeichen. Es kann auch mit unicode-Zeichen (z.B. Buchstaben mit Akzenten enthalten) korrekt.
Die Funktion gibt true zurück, wenn word count ist weniger als $length.
str_count_words hat seine Mängel. es zählen Unterstriche getrennt, Worte wie
this_is zwei Worte:
Können Sie die nächste Funktion, um die Anzahl der Wörter, durch Leerzeichen getrennt, auch wenn theres mehr als ein zwischen Ihnen.
Verwenden preg_split() statt explode(). Split unterstützt reguläre Ausdrücke.
Mit substr_count zum Zählen der Anzahl von substring vorkommen. für die Suche nach Anzahl der Wörter-Satz $Nadel zu ' '.
int substr_count ( string $haystack , string $needle)
Gibt es n-1 Leerzeichen zwischen n Objekten, so wird es 99 Leerzeichen zwischen 100 Wörter, so u kann wählen und Durchschnittliche Länge für ein Wort, sagen wir zum Beispiel 10 Zeichen, multiplizieren Sie mit 100(für 100 Wörter), dann legen 99(Leerzeichen), dann kannst du stattdessen machen Sie die Einschränkung basierend auf der Anzahl der Zeichen(1099).
if(strlen($text) > 1099)
anderes
return true;
}
Schrieb ich eine Funktion, die ist besser als
str_word_count
da, dass die PHP-Funktion zählt Gedankenstriche und andere Zeichen als Worte.Auch meine Funktion behebt das Problem der Doppel-Räume, die viele der Funktionen, die andere Leute geschrieben haben, nicht berücksichtigen für.
Wie gut diese Funktion die HTML-tags. Wo, wenn zwei tags Ineinander verschachtelt und einfach verwendet die
strip_tags
Funktion dieser würde zählt das als ein Wort, wenn es zwei. Zum Beispiel:<h1>Title</h1>Text
oder<h1>Title</h1><p>Text</p>
Zudem habe ich die Streifen aus JavaScript-erste andere weisen, die den code innerhalb der
<script>
- tags gezählt werden, die als Wörter.Schließlich meine Funktion behandelt Leerzeichen am Anfang und Ende eines Strings, mehrere Leerzeichen und Zeilenumbrüche, Zeichen zurück, und tab-Zeichen.