PHP: bestimmte Stelle aus HTML-Seite herausfiltern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfang
anordnung
aussehen
beispiel
beschrieb
erste
hierbei
info
inhalt
parameter
pattern
platzhalter
result
schreibe
speicher
stehen
variable
verstehe
versuchen
vielen vielen dank
-
Hallo,
Und zwar hab ich ne Seite bei der ich den Inhalt so durchsuchen möchte, das am Ende das ausgegeben wird, was z.B. zwischen "<TD background="bild.jpg">" und "<br>" steht.
als erstes müsste man ja erst einmal die Seite in ne Variable speichern:
<?php $HTML = file_get_contents("seite.html"); ?>
So und dann müsste man diese Seite durchsuchen bis "<TD background="bild.jpg">" gefunden wird. Und dann müsste alles ausgegeben werden was dann bis "<br>" steht.
Ich hab auch schon gegoogelt und bin auf so einen ähnlichen Code gestoßen, allerdings scheint der irgendwie mit Funkionen zu funktionieren, die ich leider noch nicht verstehe :
(http://www.mediengestalter.info/forum/10/php-string-nach-fast-variablen-teilstring-durchsuchen-59041-1.html)<?php function preg_match_between($start, $end, $string){ $pattern='/'. $start .'(.*?)'. $end .'/'; preg_match_all($pattern, $string, $result); return $result; } $array=preg_match_between("###", "###", "Dies ist ein Test ###dies### um zu sehen welche Platzhalter ###das### verbaut sind"); print_r($array); ?>
Wie muss da jetzt der Code aussehen,dass das ausgegeben wird wie oben beschrieben? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das ist einfach, schreibe den Inhalt der gesamten Seite in einen durchgehenden String, benutze also nicht etwa ein Array ok !! ;)
Dann versuch es folgender Maßen, du suchst mit string_pos nach dem Anfang, von dem an dein Text gefiltert werden soll, merke dir diesen wqer6t auf einer Var und mache das gleiche mit dem Endschlüssel für deinen TExt.
So nun hast zwei Werte, für das erste zeichen deines gewünschten TExtes und für das Endzeichen.
Nun kannst du substring benutzen, benutze den Anfangs und Endwert den du durch str_pos gewonen hast !! ;)
So geht es ganz sicher !! ;)
Beispiel
<?php $seite = "hallo text dich will ich"; $start_text = "hallo"; $end_text = "dich"; $pos_start = str_pos($start_text, $seite); $pos_end = str_pos($end_text, $seite); $mein_gewünschter_text = substr($pos_start, $pos_end, $seite);
Auf $mein_gewünschter_text, sollte nun "text" stehen !! ;)
PS: Weiß net genau ob die Anordnung der Parameter bei str_pos und sub_str richtig ist !! ;)
-
Lass mich wisen wenns geklappt hat, oder wnn du noch fragen hast, bin jeden TAg mal da !! ;)
-
<?php $seite = "hallo text dich will ich"; $start_text = "hallo"; $pos_start = strpos($seite, $start_text); $text = substr($seite, $pos_start+5, 6); echo $text; #"text" wird ausgegeben. ?>
Hab jetzt an dem Script noch so lange rumprobiert, bis es funktioniert hat. Ich glaub aber nicht, dass das was hierbei raus gekommen ist das effektivste ist. ^^ Auf jeden Fall gehts.
Und vielen, vielen Dank an bfs!! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage