• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

PHP parsen Frage

Begonnen von Wetterfrosch1971, 29.08.2017, 21:47:39

⏪ vorheriges - nächstes ⏩

Wetterfrosch1971

Hallo,

ich parse aus einer fremden Webseite gewisse Inhalte (z.B. die Temperatur, Luftfeuchte).

Nun stehe ich vor dem Problem, dass sich die Zeilen-Nr. in der der entsprechende Wert steht, immer mal wieder um ein- bis zwei Zeilen verschiebt und dann mein PHP-Script ins Leere läuft, da die Zeilen-Nr. in meinen Script ja nicht mehr mit der realen Zeile übereinstimmt.

Gibt es eine Möglichkeit, die entsprechende Zeile automatisch "ausfindig" zu machen?

Ich habe schon mal gegoogelt und da auch etwas gefunden, da wird irgendwie per PHP ein bestimmtes Zeichen in der Zeile gesucht wodurch dann immer diese Zeile gefunden wird.
Das Problem dabei ist, dass in meinen Zeilen, die ich parsen will, kein Zeichen vorkommt, was nur in dieser Zeile vorkommt und deswegen diese Methode wohl nicht anwendbar ist.

Jetzt habe ich eine andere Idee, weiß aber nicht, ob sich das umsetzen lässt, deswegen hier nun die Frage:

Direkt über den zwei Zeilen die ich parsen möchte, steht ein bestimmtes Wort, was nur in dieser Zeile vorkommt.
Wenn ich jetzt irgendwie anhand dieses Wortes die Zeilen-Nr. abfragen könnte, könnte ich dann anhand dieser Zeilen-Nr. auf die Zeilen-Nr. die ich parsen möchte schließen, denn verschieben sich die Zeilen z.B. um Plus zwei Zeilen, dann steht auch dieses Wort zwei Zeilen-Nr. weiter.

Kann man so etwas per PHP umsetzen?

Vielen Dank für die Infos.
Gruß Frank

EDIT

Habe gerade glaube ich die Lösung gefunden, ich habe es so gelöst:


<?php$lines = file('http://www.xyz');$begriff = '<h1>Schlüsselwort</h1>'; foreach ($lines AS $key => $val)     {     if (preg_match('#'.$begriff.'#', $val)) break;    } $Temperatur = " ".strip_tags($lines[$key+16])."";echo $Temperatur;	?>



Zur Erklärung:

Ich suche in meinem Quellcode das Wort "Schlüsselwort" und gebe in $key die Zeilen-Nr. an in der dieses Wort steht.

Das Schlüsselwort steht IMMER 16 Zeilen vor der Zeile die ich auslesen will und da ich nun die Zeile in der das Schlüsselwort kenne, kann ich zu dieser immer 16 Zeilen dazu addieren und komme somit immer in meine Zeile die ich suche.

Gruß Frank

olaf-sh

Hallo,

es gibt auch die Möglichkeit, nach den Tags suchen. Ich habe so vor ein paar Jahren auch schon mal Daten aus einer Seite geparst. Ich meine sogar, es gibt eine Funktion dafür, die dir zum Beispiel den Inhalt aller Tags eines Typs (zum Beispiel <h1>...</h1>) in einem Array zurückgibt. Wenn die Tags eine id oder ein name haben, geht es auch direkt.

Ich weiß nicht mehr genau, wie die Funktion heißt, aber vielleicht ist das ein Ansatz zur Suche.

Grüße aus der Holsteinischen Schweiz
Olaf
Grüße aus der Holsteinischen Schweiz
Olaf