Text aus Word extrahieren/parsen

25 02 2009

Um Text aus einem Word-Dokument (.doc) heraus zu extrahieren kann man folgende Funktion verwenden:

function read_word($user_doc) {
	$file = fopen($user_doc, "r");
	$input = fread($file, filesize($user_doc));
	$zeilen = explode(chr(0x0D), $input);
	$ausgabe = "";
		foreach($zeilen as $einzelzeile){
		$pos = strpos($einzelzeile, chr(0x00));
			if(($pos !== FALSE)||(strlen($einzelzeile)==0)) {
			} else {
 
			$ausgabe .= $einzelzeile." ";
			}
		}	
	$ausgabe = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)!]/", "", $ausgabe);
	return $ausgabe;
}

Der Aufruf erfolgt so:

$text = read_word("testdoc.doc");

Die Funktion liest den Inhalt der Word-Datei ein und trennt den Inhalt nach einem Zeilenende (0×0D), entfernt alle überflüssigen Zeichen (welche das sein sollen kann man selber noch festlegen mit Hilfe des regulären Ausdruckes in Zeile 13. Dort genannte Zeichen bleiben im Text erhalten.). Anschließend führt die Funktion die Textzeilen aus dem Word-Dokument wieder zusammen. Wie dabei Zeilenumbrüche erhalten bleiben habe ich leider noch nicht herausgefunden.



MYSQL suchen und ersetzen

16 02 2009

In MySQL kann man einfach mit Hilfe folgender Query Begriffe oder Zeichen suchen und ersetzen:

UPDATE tabelle SET feld = REPLACE (feld, "Suchen", "Ersetzen")


Zeichencodierung MySQL/PHP

16 02 2009

Um zwischen einem PHP-Script und der MySQL Datenbank (ab Version 4.1) einen Zeichensatz auszuhandeln den Beide in beiden Richtungen verwenden kann man nach dem Verbindungsaufbau zur MySQL-DB folgende Query senden:

SET NAMES 'utf8';

Um viele bereits falsch in der DB vorliegenden Zeichen zu korrigieren kann man das Programm DUK verwenden, welches automatisch falsch codierte Zeichen sucht und ersetzt.



Referer ändern/unterdrücken

15 02 2009

Wer mal einen Referer unterdrücken bzw. verfälschen möchte um die Herkunft des Visitors zu verschleiern kann dies wie folgt tun.

Ich habe hier eine zweite Domain zu Hilfe genommen.
Ich habe zuerst den Link um den es geht auf diese “Zwischendomain” verwiesen:
http://www.domain.de/forward.php?url=http://www.url_to_forward.de
(Die “URL_TO_FORWARD” sollte man vorher richtig encoden (z.B. PHP->urlencode) )
In dem Script “forward.php” auf www.domain.de habe ich folgende Body-Javascript-Weiterleitung installliert:

<head>
<title>Weiterleitung</title>
</head>
<body onLoad="window.location.replace('<?=$url?>')">
</body>
</html>

Nun erscheint in der Referer-Liste der Zielseite der Referer: http://www.domain.de/forward.php?url=…

Wenn ansonsten jemand eine Idee hat, wie man den Referer komplett per Javascript unterdrücken kann, bin ich gespannt. Meistens funktionieren die einfachen Javascript Befehle wie “window.location.replace” oder “window.location.href” oder was es alles gibt nur bei einigen Browsern udn z.B. im Firefox nicht.