Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Daten filtern aus HTML-Code : ereg_replace ?! Antworten
Daten filtern aus HTML-Code : ereg_replace ?!

coopernicus
Pixelschubser


Beiträge: 20


Hallo,
ich habe zwei Sorgenfalten vom lauter Herumgrübeln. Ich bin mir aber sicher, dass es eine nicht allzu komplizierte Lösung des Ganzen gibt. also:
ich ziehe mir per php den Quellcode einer HTML-Seite heraus. Diese Seite ist sehr voll mit Tags und - für mich - unnötigen Informationen. Irgendwo mittendrin steht folgender Quellcode:

... >Montag</a></font></td><td><font class="ts">Einnahmen</font></td><td align="right"><font class="ts">21 </font></td> ..

Komme ich mit 'ereg_replace' an die 21 heran?
Als Orientierung dient der Wochentag Montag, nach dem ich suchen kann.

a) wie schneide ich den Quellcode vor 'Montag' am geschicktesten ab?
b) wie filtere ich die 21 heraus (die auch negativ sein kann) und weise dem eine Variable zu?

Meine Überlegung war erst einmal alle html-tags zu entfernen. Aber irgendwie komme ich dann nicht weiter .... Ich hoffe, ich finde einen schlauen, netten Kopf, der mir den entscheidene Tip geben kann

Vielen Dank auf jeden Fall schon mal.
coopersen


  Profil   Website   Editieren   Zitieren

michael
Foren-Team


Beiträge: 1933


vorschlag:

lies alles von montag bis 21 damit aus:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32:
<?

$loc = "http://www.domain.de";
$startstring = "Montag"; //ab dem text im quellcode
$endstring = "21"; //bis zu dem text im quellcode

$file = @fopen ($loc,"r");
if (trim($file) == "") {
	echo "Irgendwas ist hier schiefgelaufen";
} else {
	$i=0;
	while (!feof($file)) {
		$zeile[$i] = fgets($file,2000);
		$i++;
	}
	fclose($file);
}

for ($j=0;$j<$i;$j++) {

   if ($resultat1 = strstr($zeile[$j],$startstring)) {
      $resultat2 = str_replace($startstring, "", $resultat1);
      $endstueck = strstr($resultat2, $endstring);
      $resultat = str_replace($endstueck,"",$resultat2);
   }
}

echo $resultat;

?>
 


und bei $resultat ersetzt du noch mit dem string-replace den Teil den er nicht zeigen soll (also den ganzen HTML-Code) durch nix.


  Profil   Editieren   Zitieren

coopernicus
Pixelschubser


Beiträge: 20


0

  Profil   Website   Editieren   Zitieren

michael
Foren-Team


Beiträge: 1933


dann gib doch als start & end-string das vor und nach der 21 an - dann sucht er genau die raus.


  Profil   Editieren   Zitieren

coopernicus
Pixelschubser


Beiträge: 20


der quellcode selbst ist ja variabel. nicht aber der Kram, der zwischen Montag und - in diesem Fall - der 21 steht. Gibt es keine Lösung, dass ich die 21 ausgehend vom Montag finden kann?
Vielleicht über einen Zeiger, der hinter Montag steht und soundsoviele Zeichen weiter diese dann in eine Variable speichert?

Ist da was zu machen?
Danke schön


  Profil   Website   Editieren   Zitieren

coopernicus
Pixelschubser


Beiträge: 20


hi michael,
ich hatte noch ein paar anpassungsprobleme, aber jetzt funktioniert dein
vorgeschlagener lösungsweg.

vielen dank für deine hilfe !!!

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben