webseite in iframe nach textstellen durchsuchen

sushie2k

Grünschnabel
Hallo,

ich benötige Hilfe bei folgendem Problem:

Ich habe mir ein kleines php-skript geschrieben, dass eine bestimmte Webseite in regelmäßigen Abständen in ein "iframe" auf meiner php-seite lädt. - soweit, so einfach.

Jetzt bin ich auf der Suche nach einer Funktion, die die in diesem "iframe" dargestellte Webseite nach einer bestimmten Zeichenkette (bzw. einem Schlüsselwort) durchsucht und sofern diese Zeichenkette gefunden wurde, einen entsprechenden Rückgabewert liefert, damit ich dann in meinem php-skript entsprechend darauf reagieren kann.

Sorry, für meine in mancher Leuten Augen vielleicht triviale Frage, aber ich bin in Sachen php noch blutiger Neueinsteiger komme bei dieser Sache wirklich nicht weiter...

Schonmal großer Dank an alle, die mir helfen können.
 
Moin!

Wie wär's wenn Du den Text-Inhalt des iFrames als String behandelst? Du kannst z.B. die Fuktionen "search(regexp);" und "match(regexp);" verwenden, welche beide Methoden des String-Objektes sind. Beispiel:

Code:
if(document.innerText.search("...") != -1)
{
   // tu irgendwas
}

Gruß
Enum
 
[phpf]strstr[/phpf]
[phpf]stristr[/phpf]

Diese beiden Funktionen sollten dir dabei helfen.
 
ja, also von den string-befehlen hab ich auch schon oft gehört...

das Problem is nur, daß in sämtlichen Beispielen, die ich gefunden habe, im Quellcode immer nur 2 vorher genau definierte Zeichenketten miteinander verglichen werden. Vorher definieren kann ich jedoch nur meinen Suchstring - die andere Zeichenkette ist quasi variabel und hängt vom Inhalt der Webseite im iframe ab.

Das Problem, was ich da jetzt, hab ist: ich muss erst den gesamten text der Webseite, die im iframe steht irgendwie in ne Variable in meinem php-skript kriegen, damit ich das dann im php-skript mit dem "strstr"-befehl mit meinem Suchstring vergleichen kann.
 
Abend!

Absoluter Unsinn, das mit den vordefinierten Strings. Mit "strstr($text, $begriff)" kannst Du das Problem lösen. Die Funktion gibt FALSE zurück, wenn der Suchtext nicht gefunden wurde.

Gruß
Enum

PS: Sorry, in meinem ersten Post hatte ich wohl übersehen, dass ich schon im PHP - Forum war...
 
Erklär mal bitte, wie du Dir das vorstellst. Wenn die Seite bereits beim Betrachter angezeigt wird, ist die Ausführung des PHP-Skriptes doch längst abgeschlossen - und die übergabe des Inhaltes an das Skript dürfte verdammt umständlich werden.
Oder hab' ich das falsch verstanden? Mehr Info, bitte!

Gruß
Enum
 
also das php-skript stellt eine bis auf den iframe (dessen Inhalt von einer anderen Seite stammt) leere Seite dar. Über html-meta-befehle wird diese html-Seite (und somit der iframe) alle paar minuten neu geladen.

Ich will es praktisch so haben, das der nach jedem Neuladen der Seite dann halt den iframe-Inhalt (also die Webseite im iframe) nach eine bestimmte Zeichenkette durchsucht.

Um den strstr-befehl anwenden zu können, müsste ich jedoch jedensmal den gesamten text-inhalt des iframes in eine Variable kopieren, um diese dann mit meiner Zeichenkette zu vergleichen - ich weiß aber nicht, wie ich den text-Inhalt des iframes in die Variable reinkriegen soll...
 
Abend!

Eigentlich ist das ganz einfach. Jedoch abhängig von der PHP - Version des Servers.
Du musst einfach die Datei bzw. URI laden.
Entweder Du machst das mit der alten Methode (fopen, fgets, fclose) oder - ab PHP v.4.3 - mit "$tring = file_get_contents($path);".
Allerdings funktioniert das Laden von externen URIs nicht auf jedem System.

Gruß
Enum
 
Das hängt zusammen mit der Einstellung von allow_url_fopen in der php.ini.
Die Einstellung du über [phpf]phpinfo[/phpf] einsehen.
Man sollte natürlich eher allow_url_fopen ausschalten (CrossSite Scripting Lücken werden so zum Teil verhindert) und mit [phpf]fsockopen[/phpf] arbeiten.
 
Abend!

Wie sieht's aus, hast Du die Problematik in den Griff bekommen?
Wenn ja, wie?

Gruß
Enum

PS: Vielleicht solltest Du den Thread als erledigt markieren ... :rolleyes:
 
Zurück