Das Schreiben in die Log-Datei funktioniert nicht. Es wird an die bestehende Datei keine Zeile angehängt. Echo gibt für $fp den Wert “Resource id #575” aus.
Ich weiß nicht wer auf die Idee gekommen ist diese “inline” Möglichkeit von Variabeln in PHP-Strings einzubauen…
Eine neue Zeile wird mit dem Modus “a” nicht angehängt, sondern die Daten werden einfach ans Ende gehängt.
Wenn du willst dass danach eine Neue Zeile erscheint musst du den Zeilenumbruch schon selber mit anfügen:
EDIT: Bevor ichs vergesse. der Rückgabewert in der Variable $hit ist ein Array, um zu sehen wie die Struktur ist, kannst du einfach print_r($hit) oder var_dump($hit) machen.
Die Anzahl an treffer solltest du mit count($hit[0]) Erfahren, ODER du setzt noch den zusätzlichen vierten Parameter auf PREG_SET_ORDER.
Beispiel:
So wird der Aufbau des $hit-Arrays geändert, und dann müsste es mit count($hit) ausreichen.
Natürlich geht das ^^" ich meine damit ja auch die PHP-Entwickler… ich finde nicht, dass das ein sonderlich guter Programmierstil ist… Ich trenne meine Daten und Code lieber Strickt voneinander.
\b ist “word-boundary”, d.h. der erwartet dort den Anfang oder das Ende eines Wortes.
Der eigentliche Fehler ist glaube ich das da: ".+"
kA was das dort zu suchen hat. wenn als modus kein “U” mit angegeben wurde, würde der gleich beim ersten treffer den gesamten String mit nehmen.
Das Skript ist nicht von mir und ich muss zugeben, dass ich es auch nicht ganz verstehe, aber ich denke, für die Anpassungen, die ich vornehmen möchte, brauche ich das auch nicht unbedingt.
Ja, das habe ich schon verstanden. Nur, es wird überhaupt nichts angehängt, die Log-Datei bleibt leer
[quote]Die Anzahl an treffer solltest du mit count($hit[0]) Erfahren, ODER du setzt noch den zusätzlichen vierten Parameter auf PREG_SET_ORDER.
Beispiel:
So wird der Aufbau des $hit-Arrays geändert, und dann müsste es mit count($hit) ausreichen.[/quote]
In beiden Fällen bekomme ich als Ausgabe 0, obwohl es 2 Treffer waren.
$site="Das ist ein Test, Test, Test, den Tests sind cool... Test";
$pattern="Test";
echo preg_match_all("/\b$pattern\b/is", $site, $hit)."\n";
var_dump($hit);
Vielleicht kannst du auch sowas gebrauchen, dann können auch nach Steuerzeichen der Regulären Ausdrücke gesucht werden. Außer du willst natürlich, dass die Leute beim Suchen RegExp verwenden können.