Mittwoch, 7. Mai 2008

PHP

Count_Words in PHP

PHP hat viele nützliche Stringfunktionen. Nur eine Funktion zum Wörter zählen in PHP, oder deren Häufigkeit habe ich nicht gefunden. Sollte aber kein Problem darstellen...

Wörter zählen in PHP

Um die Anzahl der Wörter zu zählen kann man die Methode StringHelper::countWords() benutzen. Diese gibt die Anzahl der gefunden Wörter zurück

Worthäufigkeit zählen

Die Häufigkeit eines Wortes, also wie oft eine Wort in einem String vorkommt, kann man mit der Methode StringHelper::countWordsOccurrences() ausgeben lassen.

Download Code!

  1.  
  2. /**
  3.  * String helper class
  4.  * @author Mr.Foo
  5.  */
  6. class StringHelper {
  7.        
  8.         /**
  9.          * Count words in a given string;
  10.          *
  11.          * @param string $str
  12.          * @return int The count value
  13.          */
  14.         public  static function countWords($str) {
  15.                 $str = (string)$str;
  16.                 if(strlen($str) == 0) {
  17.                         return $len;
  18.                 }
  19.                 if(preg_match_all("#\w+#s", $str, $matches)) {
  20.                         //print_r($matches);
  21.                         return count($matches[0]);
  22.                 }
  23.                 return 0;
  24.         }
  25.        
  26.        
  27.         /**
  28.          * Counts the number of word occurrences in a string
  29.          *
  30.          * @param string $str
  31.          * @return mixed Array with word as key and the frequency of word as value.
  32.          */
  33.         public static function countWordsOccurrences ($str) {
  34.                 $str = (string)$str;
  35.                 if(strlen($str) == 0) {
  36.                         return $len;
  37.                 }
  38.                 $str = strtolower($str);
  39.                 $str = preg_replace("#(\t|\n)#", ' ', $str);
  40.                 $values = explode(' ', $str);
  41.                 $values = array_filter($values);
  42.                 $values = array_count_values($values);
  43.                 ksort($values);
  44.                 $values = array_reverse($values);
  45.                 return $values;
  46.         }
  47.        
  48.        
  49. }
  50.  

PS. Das Ganze musste sehr schnell heute morgen gehen. Ich konnte daher die Funktionen noch nicht ausgiebig testen.

Bewertung: keine, 0 Stimme(n) 336 Klicks
PHP
Von Mr.Foo in PHP am 07.05.08@09:59 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

2 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

NetHawk - #1 - 15.06.2008 15:19 - (Antwort)

Super Idee so was zu machen! Frage: warum inkrementierst Du in Zeile 21 das Resultat von count? count liefert doch schon die korrekte Anzahl Elemente, unabhängig vom Index des Array. Bei meinen Tests hat die Methode auch immer einen um 1 zu grossen Wert ergeben. Wenn ich das zusätzliche Inkrement herausnehme, stimmt die Anzahl Wörter.

Mr. Foo - #1.1 - 16.06.2008 11:46 - (Antwort)

Hmm,

wie ich schon geschrieben habe - ich war sehr in Eile an diesem Morgen und habe deshalb die Funktion nicht richtig testen können.

Wegen dem erhöhen des Ergebnisses um eins:
Ich hatte wohl zuerst einfach die Spaces gezählt und in dem Fall wäre eine Erhöhung um eins richtig

Nach dem anpassen des Regulären Ausdrucks ist das wohl stehengeblieben. :/

Vielen Dank für den Hinweis - habe es gleich mal ausgebessert. :-)


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

Count_Words in PHP

  • Homepage

Suche

Kategorien

  • Android (2)
  • C-Sharp (4)
  • Datenbank (30)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (16)
  • Internet (88)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (102)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (130)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (60)
  • Sonstiges (47)
  • Own Stuff (48)
  • Spass (46)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (17)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Mai 2012
  • April 2012
  • März 2012
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (197)
  • Plugin-container.exe deaktivieren (107)
  • BWin Betrug und Abzocke bei Minigames? (65)
  • C compiler cannot create executables unter Debian (53)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (43)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (28)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (28)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

Hugo zu BWin Betrug und Abzocke bei Minigames?
So, 20.05.2012 12:25
ich habe mich gestern auf BWIN reg [...]
Ubuntu 12.04 zu The assembly mscorlib.dll was not found or could not be loaded.
Fr, 18.05.2012 17:11
Hat bei mir leider nicht geklappt. [...]
Oliver Riske zu Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden
Di, 15.05.2012 20:38
Super Danke!
anon zu BWin Betrug und Abzocke bei Minigames?
Sa, 05.05.2012 18:43
ihr scheiss betrüger
Jürgen zu Unable to elevate error:1814 VLC Problem
Mi, 02.05.2012 16:54
So einfach ist es bei mir jedenfal [...]
 

Kontakt/Informationen