Hallo,
ich möchte von einigen HTML-Dateien eine komplette Wortliste anlegen. Die HTML-files sind im Header ohne Zeichensatz definiert:
Meine PHP-Datei ist mit UTF-8 definiert:
Ich lese also die Datei in den String $HTML ein, bzw. den reinen Text in $HTMLDOM.
Dann scanne ich den String in $HTMLDOM nach einzelnen Wörtern (diese können beinhalten: a..z A..Z 0..9 Sonderzeichen -) durch.
Leider funzt das mit den Sonderzeichen nicht. Ich habe es mit und ohne utf8_encode versucht. Irgendeinen Tipp, was ich falsch mache?
Danke!!!
ich möchte von einigen HTML-Dateien eine komplette Wortliste anlegen. Die HTML-files sind im Header ohne Zeichensatz definiert:
Code:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
Code:
<?php header('Content-Type: text/html; charset=UTF-8');
Code:
$HTML = ""; $fp = @fopen($myfile, "r") or die ("Kann Datei " . $myfile . " nicht lesen."); while ($line = fgets($fp, 1024)) { $HTML = $HTML . " " . $line; } fclose($fp); $doc = new DOMDocument(); if (@$doc->loadHTMLFile($myfile) == FALSE) { echo "Fehler bei der DOM-Objekt-Erzeugung von " . $myfile . "<br>"; } $HTMLDOM = ""; $elements = $doc->getElementsByTagName('body'); if (!is_null($elements)) { foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { if (strcmp($node->nodeName, "script") != 0) { $HTMLDOM = $HTMLDOM . " " . $node->nodeValue . " "; } } } }
Code:
$pos = 0; $komplett = array(); $text = ""; while ($pos < strlen($HTMLDOM)) { $z = substr($HTMLDOM, $pos, 1); if ( ($z >= 'A' and $z <= "Z") or ($z >= 'a' and $z <= "z") or ($z >= '0' and $z <= "9") or $z == "-" or $z == utf8_encode("ü") or $z == utf8_encode("ö") or $z == utf8_encode("ä") or $z == utf8_encode("ß") or $z == utf8_encode("Ü") or $z == utf8_encode("Ö") or $z == utf8_encode("Ä") or $z == utf8_encode("ü") or $z == utf8_encode("ouml;") or $z == utf8_encode("ä") or $z == utf8_encode("ß") or $z == utf8_encode("Ü") or $z == utf8_encode("Ö") or $z == utf8_encode("Ä") or $z == utf8_encode("Ã") ) { $text = $text . $z; } else { if (strlen($text) >= 2) { $komplett[] = $text; } $text = ""; } $pos = $pos + 1; }
Danke!!!
Kommentar