# html Tabelle auslesen, mit php



## pauliee (9. Juli 2007)

Hallo!

Ich möchte ein kleines Projekt umsetzen. Und zwar wird mittels Perl ein HTML- Dokument ausgegeben, in diesem ist eine Tabelle. 
In einem PHP- Dokument möchte ich nun die Summe von Beträgen, einer Spalte aus der Tabelle, auslesen. 
Habe dies mit einer for-Schleife bzw. einer while- Schleife probiert, allerdings kommt da nichts brauchbares heraus 

Im Anhang ein Beispiel einer Tabelle. Hier soll die Tabelle "Betrag" ausgelesen werden.

Könnt ihr mir weiterhelfen?
Vielen Dank!


----------



## Michael Engel (9. Juli 2007)

Wenn es dein eigenes Pearl Script ist, ist es dann nicht einfacher zB eine CSV Datei rauszuschreiben und die wieder einzulesen?


----------



## Iches (9. Juli 2007)

In PHP müsstest du den Inhalt per http://www.php.net/manual/de/function.file-get-contents.php einlesen, und dann durch http://www.php.net/manual/de/function.str-replace.php oder http://www.php.net/manual/de/function.preg-replace.php die nicht gewüschnten Zeichen rauslöschen.


----------



## pauliee (9. Juli 2007)

Hallo!

@engelb
Wäre eine Möglichkeit - allerdings soll das PHP- Scirpt als Task ablaufen! Aus diesem Grund kann ich mit dem Download von CSV-Daten leider nichts anfangen :-(

@msStriker
Vielen Dank werde das mal probieren mit file_get_contents!


----------



## pauliee (9. Juli 2007)

Ich habe es nun mit preg_match probiert, nur leider kommt auch hier nichts Gescheides heraus :-( bin ratlos ...


----------



## Iches (9. Juli 2007)

Zeig mal deinen Code.


----------



## pauliee (9. Juli 2007)

Hi.
Hier der Code:


```
<?
$woher = "http://192.168.1.100/tabelle.html";
$arr = file($woher); 

foreach($arr as $line) 
{
  $blank = htmlspecialchars($line)."<br>"; 
	
	echo preg_match("/\b<td id=\"betrag\">\b/i", $blank);
} 
?>
```


----------



## Iches (9. Juli 2007)

Mach es doch einfach so:


```
foreach($arr as $line) 
{
if(preg_match("/<td id=\"betrag\">(.*)<\/td>/isU", $line, 
   $inhalt)) { echo $inhalt[1]."<br />"; }
}
```


----------



## pauliee (9. Juli 2007)

Danke werde das gleich morgen früh versuchen. 

lg und danke


----------



## pauliee (9. Juli 2007)

Hi!

Das geht echt super - vielen Dank.
Nur wollt ich jetzt mit explode() die einzelnen Strings aufteilen , und danach addieren. Aber er gibt mir nach explode nichts aus - kannst du mir sagen warum bin ratlos



```
<?
$woher = "http://192.168.1.100/tabelle.html";
$arr = file($woher); 

foreach($arr as $line) 
{
if(preg_match("/<td id=\"betrag\">(.*)<\/td>/isU", $line, 				
   $inhalt)) {
   $loeschen = array("<td id=\"betrag\">", "</td>", "betrag");	
   
   $inhalt = str_replace($loeschen,"",$inhalt[0]."|");				
  	$betraag = explode($inhalt, "|");										
		
		echo $betraag[1];   
		
		// addition.... 
   }
}  
?>
```


----------



## Iches (9. Juli 2007)

Du bekommst ja den Betrag aus dem $inhalt[1], warum addierst du nicht einfach alle zusammen? Dies ist doch viel einfacher, oder hast du was anderes vor?


----------



## CIX88 (10. Juli 2007)

Müsste es nicht preg_match_all sein ?
http://www.regex-tester.de/uc_65_de.html

Und zum Schuss einfach:

$gesamt = 0;
foreach ( $inhalt[1] as $val ) $gesamt += $val;
echo $gesamt;


----------

