php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.12.2011, 08:53  
Neuer Benutzer
 
Registriert seit: 15.11.2011
Beiträge: 15
PHP-Kenntnisse:
Anfänger
resum befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Anzahl bestimmter Wörter eines strings

Hallo

Folgendes, ich hab eine .txt Datei aus der ich die Anzahl jedes vorkommenden
Wortes ausgeben soll. 'wort' = 'anzahl'

PHP-Code:
<?
$fp 
fopen('lorem_ipsum.txt''r');

$text fgets($fp);

$text str_replace(',' ''$text);
$text str_replace('.' ''$text);

$woerter explode(' '$text);
echo 
'<pre>' print_r ($woertertrue) . '</pre>' ;

fclose($fp);

?>
Bis jetzt hab ich nur mal pro Zeile ein Wort ausgegeben und die Satzzeichen entfernt.

Kann mir wer helfen?
resum ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.12.2011, 11:20  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Zitat:
Zitat von resum Beitrag anzeigen
Bis jetzt hab ich nur mal pro Zeile ein Wort ausgegeben und die Satzzeichen entfernt.
Warum entfernst du die Satzzeichen und kettest damit die Wörter zusammen ???
Schon die Suche betätigt? (Stichwort preg_match_all).
jspit ist offline   Mit Zitat antworten
Alt 13.12.2011, 11:31  
Neuer Benutzer
 
Registriert seit: 15.11.2011
Beiträge: 15
PHP-Kenntnisse:
Anfänger
resum befindet sich auf einem aufstrebenden Ast
Standard

Dunno.
Ich hab ja ein Arrray indem jedes Element ein Wort ist, ich dachte damit lässt sich doch etwas anfangen.
resum ist offline   Mit Zitat antworten
Alt 13.12.2011, 11:37  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Ist nach deinem Code da oben aber nicht sauber gelöst. Lass mal die Leerzeichen nach Komma und Punkt weg, sofern du so was in deinem Text drin hast.
jspit ist offline   Mit Zitat antworten
Alt 13.12.2011, 11:41  
Neuer Benutzer
 
Registriert seit: 15.11.2011
Beiträge: 15
PHP-Kenntnisse:
Anfänger
resum befindet sich auf einem aufstrebenden Ast
Standard

Der Text ist ein einfach als Beispiel ein generierter Lorem ipsum => "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore..."

Warum soll ich nach dem Satzzeichen das Leerzeichen weglassen? Dort gehört doch eins hin. Und sonst könnt ich den Text auch nicht in einzelne Worte aufteilen.

Ich versteh gerade nicht worauf du hinaus willst.
resum ist offline   Mit Zitat antworten
Alt 13.12.2011, 12:04  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Der Anfang ist schon richtig. Du musst alle vorkommenden Wörter erstmal in einen Array packen.
PHP-Code:
$text 'Dies ist ein Text, und dieser Text ist zu durchsuchen.';

//Im ersten Gang alle Sonderzeichen zu Leerzeichen umwandeln, dann am Leerzeichen 
//exploden und die geTRIMten Arrayelemente zaehlen:

$wortzaehler = array();
$ersetzen = array(
  
'.' => ' ',
  
',' => ' ',
  
'?' => ' ',
  
'!' => ' ',
);
$text strtr($text,$ersetzen);
$woerter explode(' ',$text);

foreach ( 
$woerter as $wort ) {
  
$wort trim($wort);
  if ( 
$wort != '' ) {
    if ( isset(
$wortzaehler[$wort]) ) {
      
$wortzaehler[$wort]++;
    } else {
      
$wortzaehler[$wort] = 1;
    }
  }
}

print_r($wortzaehler); 
Wahrscheinlich ist es eleganter, alle unerwünschten Zeichen mit preg_replace und einer whitelist zu ersetzen, aber ich hab grade keine Lust die Regex zu bauen.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 13.12.2011, 12:29  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Warum so umständlich?
PHP-Code:
$text 'Dies ist ein Text, und dieser Text ist zu durchsuchen.';

var_dump(array_count_values(str_word_count($text1))); 
Ausgabe:
Code:
array(8) {
  ["Dies"]=>
  int(1)
  ["ist"]=>
  int(2)
  ["ein"]=>
  int(1)
  ["Text"]=>
  int(2)
  ["und"]=>
  int(1)
  ["dieser"]=>
  int(1)
  ["zu"]=>
  int(1)
  ["durchsuchen"]=>
  int(1)
}
fab ist offline   Mit Zitat antworten
Alt 13.12.2011, 13:08  
Neuer Benutzer
 
Registriert seit: 15.11.2011
Beiträge: 15
PHP-Kenntnisse:
Anfänger
resum befindet sich auf einem aufstrebenden Ast
Standard

Klasse! Danke Wolla.
resum ist offline   Mit Zitat antworten
Alt 13.12.2011, 13:09  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Öhm... Hast Du fab´s Beitrag gesehen?
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 13.12.2011, 13:19  
Neuer Benutzer
 
Registriert seit: 15.11.2011
Beiträge: 15
PHP-Kenntnisse:
Anfänger
resum befindet sich auf einem aufstrebenden Ast
Standard

Ja, ist auch klasse.
Mir gefällt Wolla's version besser da ich es selbst schon mit einer foreach Schleife versucht hab und einfach näher an meiner Variante und Überlegungen liegt.

Bewerten werd ich beide Beiträge wenns darum geht.
resum ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Prüfen eines Werts unter einer bestimmter Anzahl Einträge borer333 PHP Einsteiger 15 29.11.2011 20:13
die ersten zwei wörter anders formatieren zoro PHP Einsteiger 4 16.03.2011 15:04
Strings numerisch umwandeln xm22 Software-Design 8 15.12.2010 20:02
Nur groß geschriebene Wörter mit preg_split suchen ASommer PHP Tipps 2010 3 08.10.2010 11:54
PHP Daten nach bestimmter Anzahl ... yuku PHP Tipps 2010 15 15.03.2010 15:31
[Erledigt] Anzahl der von Explode gelieferten strings? nofear87 PHP Tipps 2008 3 25.10.2008 11:30
[Erledigt] Max Anzahl Checkboxen Hu5eL JavaScript, Ajax und mehr 2 25.06.2008 15:37
Nur ein bestimmter Teil des Strings. Skazi PHP Tipps 2008 1 01.05.2008 13:55
Aus Auflistung mit , die Anzahl der Wörter? BartTheDevil89 PHP Tipps 2007 8 18.03.2007 19:47
Das maximale Auftreten bestimmter Zeichen festlegen PHP Tipps 2006 5 23.01.2006 16:48
Lange wörter eines Strings teilen? PHP Tipps 2005-2 2 11.06.2005 10:00
Wörter in Wörter nicht highlighten PHP Tipps 2005 4 29.03.2005 13:59
Abfrage der Anzahl bestimmter Werte in einer Spalte Datenbanken 1 13.03.2005 12:30
Nach bestimmter Anzahl ... PHP Tipps 2004 2 04.11.2004 08:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
anzahl worte mit php, preg_match_all wort unerwünscht, erste 20 worte php

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:37 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum