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!!!
Moderator
Comment