teil eines html files auslesen

casola

Grünschnabel
...und in ein textfile ausgeben.
erstmal ein Hallo in die Runde!

Folgendes Problem:
Habe hier ein Programm, welches eine html Datei erstellt die ich nicht ändern kann.
Das aussehen der Seite weicht auch extrem vom design meiner HP ab....
Denke mit php müsste man dieses Problem lösen können, leider hab ich null Ahnung und keine Lust mich wegen dieser einen Seite Monatelang hinzusetzen und php zu lernen. ;)

Würd ich gerne Profis überlassen :kiss

Was muss ich tun um alles was zwischen "25%">xxxx</ und 35%">xxxx</ in eine textdatei zu schreiben, wobei jeder ausgelesene wert in eine neue Zeile geschrieben wird?

Hier ein schnipsel aus der html datei:

<tr><td width="25%">Down</td><td width="35%">18B</td></tr>
<tr><td width="25%">Running</td><td width="35%">4</td></tr>
<tr><td width="25%">Files</td><td width="35%">0</td></tr>
<tr><td width="25%">max</td><td width="35%">13</td></tr>
 
Wirklich, einem Anfänger schon regulläre Ausdrücke zu geben ist auch ein wenig hart...

Du könntest die Datei Zeilenweise auslesen.
Wenn du weisst, in welchen Zeilen diese bestimmten wichtigen sind, dann schreibst du sie in die Textdatei.
Ich werde mal schauen, ich habe da sowas schon gelöst... :)

Cya
-perry-

Edit:

So, habe es mal gerausgesucht, hier der Code, sollte funktionieren:
PHP:
$text = fopen("die.html",'r');
	
         if($text) 
             echo "<br>HTML geoeffnet <br>"; 
         else 
              echo "die.html konnte nicht  geoeffnet werden";
	
          
          while($zeile = fgets($text)){
		$counter++;

                str_replace('<tr><td width="25%">','',$zeile);
                str_replace('</td><td width="35%">','',$zeile);
                str_replcae('</td></tr>','',$zeile);

                switch($counter){
                   case(10):
                       echo $zeile;
                       break;
                   case(11):
                       echo $zeile;
                       break;
                }	
	  }
 
Zuletzt bearbeitet:
Die Zeilen sind fest.
Ganz speziel brauch ich aus dem html code

Zeile 33:<tr><td width="25%">Down</td><td width="35%">18B</td></tr>
Zeile 35:<tr><td width="25%">Running</td><td width="35%">4</td></tr>
Zeile 36:<tr><td width="25%">Files</td><td width="35%">0</td></tr>
Zeile 37:<tr><td width="25%">max</td><td width="35%">13</td></tr>

in dem Textfile sollte dann

down
18
Running
4
Files
0
max
13

stehen.

Den code oben hab ich eben probiert. Ausgabe-> "HTML geoeffnet" :rolleyes:
 
Hmm, ich habe bei CASE Klammern gesetzt, das war falsch, lass diese mal bitte aus.

Und aus den Zahlen machst du dann erstmal die Zeilen, die du benötigst.

Und dieser Block schaut nach deinem Muster dann so aus:

PHP:
str_replace('<tr><td width="25%">','<br>',$zeile);
str_replace('</td><td width="35%">','<br>',$zeile);
str_replcae('</td></tr>','',$zeile);
 
Langsam wirds...
PHP:
 <?php
$text = fopen("die.html",'r'); 
 
		 if($text) 
			 echo "<br>HTML geoeffnet <br>"; 
		 else 
			 echo "die.html konnte nicht geoeffnet werden"; 
 
 
		 while($zeile = fgets($text)){ 
		$counter++; 
 
				switch($counter){ 
				 case 33: 
					 echo $zeile; 
					 break; 
				 case 35: 
					 echo $zeile; 
					 break; 
				 case 36: 
					 echo $zeile; 
					 break; 
				 case 37: 
					 echo $zeile; 
					 break;
				}	 
	 } 
str_replace('<tr><td width="25%">','<br>',$zeile); 
str_replace('</td><td width="35%">','<br>',$zeile); 
str_replcae('</td></tr>','',$zeile); 
 
 
?>
Per php werden jetzt die korrekten Daten ausgegeben. :)
(down 18 Running 4 Files 0 max 13)
Wie bekomm ich nun die Ausgabe in ein Textfile (lines.txt), bei dem jeder Wert in einer extra Zeile steht?

Bis hierher schonmal vielen Dank! -> Hätt ich in Wochen nicht geschafft. :)
 
PHP:
$text = fopen("die.html",'r');
$txt   = fopen("lines.txt",'w');

         if($text)
             echo "<br>HTML geoeffnet <br>";
         else
             echo "die.html konnte nicht geoeffnet werden";


         while($zeile = fgets($text)){
                $counter++;
                $zeile = $zeile."\r\n";                // steht für den Zeilenumbruch in der txt(bei Windows)
                switch($counter){
                 case 33:
                     fputs ('lines.txt', $zeile);
                     break;
                 case 35:
                     fputs ('lines.txt', $zeile);
                     break;
                 case 36:
                     fputs ('lines.txt', $zeile);
                     break;
                 case 37:
                     fputs ('lines.txt', $zeile);
                     break;
                }    
     }
str_replace('<tr><td width="25%">','<br>',$zeile);
str_replace('</td><td width="35%">','<br>',$zeile);
str_replcae('</td></tr>','',$zeile); 


fclose($text);
fclose($txt);
//und das schließen nicht vergessen ;)

Ich glaube, das stimmt so.

Viel Spaß ;)

Cya
-Perry-
 
Zuletzt bearbeitet:
Fehlermeldung:
Warning: fputs(): supplied argument is not a valid stream resource in \test\test4.php on line 30 //und 33,36,39

entspricht zeile "fputs ('lines.txt', $zeile);"

Die Lines.txt wird erstellt, filegroesse = 0bytes.

Ich würd bald Wetten das es irgendwas gaanz simples ist.

Klick mich schon seit Stunden durch die ganzen Tutorials... :-(
 
Zurück