<td>-Inhalt aus Textdatei speichern
Simon
- php
Hallo,
ich habe unzählige txt-Dateien, in den die folgende Strucktur vorherscht.
<html>
<head>
</head>
<body>
...
<td id=123> name </td>
<td id=321> vorname </td>
..
</body>
</html>
Wie muss ich jetzt ein Script schreiben, das mir aus allen Text-Files nur die Inhalte aus <td id=123> bzw. <td id=321> speichert?
Kann mir jemand mit einem Script-Bsp. unter die Arme helfen?
Gruß .. Simon
Hallo Simon!
ich habe unzählige txt-Dateien, in den die folgende Strucktur vorherscht.
Nunja, ich empfehle Dir mal einen Googlefight: "Struktur herrscht" vs. "Strucktur herscht" ...
<td id=123> name </td>
<td id=321> vorname </td>
Wie muss ich jetzt ein Script schreiben, das mir aus allen Text-Files nur die Inhalte aus <td id=123> bzw. <td id=321> speichert?
Mit regulären Ausdrücken solltest Du das in den Griff bekommen können.
Lies Dir dazu am besten mal PHP Manual: XCIX. Regular Expression Functions (Perl-Compatible) durch.
MfG
Götz
Hello,
<td id=123> name </td>
<td id=321> vorname </td>
Das ist recht einfach, wenn die Tabellenzellen tatsächlich immer eine eigene Zeile für sich haben.
$_rows = file($dateiname);
$name= '';
$vorname = '';
$nameok = false;
$vornameok = false;
foreach($_rows as $row)
{
if (str_pos('<td id=123>',trim($row)) === 0)
{
$name = trim(strip_tags($row));
$nameok = true;
}
elseif (str_pos('<td id=321>',trim($row)) === 0)
{
$vorname = trim(strip_tags($row));
$vornameok = true;
}
if ($nameok and $vormaneok) break; ## abbrechen, wenn beide gefunden wurden
}
Mit glob() kannst Du das Verzeichnis auslesen und die Ergebnisse mit is_file() auf 'Datei' prüfen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
if (str_pos('<td id=123>',trim($row)) === 0)
Sorry, ich wollte noch nachschauen...
http://de.php.net/manual/en/function.strpos.php
if (str_pos(trim($row),'<td id=123>') === 0)
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
nimm doch die string-funktionen in PHP. http://de3.php.net/manual/de/ref.strings.php
Über die ID der Tabellenzelle erkennst Du die Position _ab_ der gelesen werden soll (z.B. mit strpos() ), über den dann folgenden ersten schliessenden </td>-Tag die Position _bis_ zu der gelesen werden soll.
Mit strstr() kannst Du alles ab der Start-Position einlesen, davon musst Du noch alles ab der End-Position abziehen. Was übrig bleibt einlesen und nach belieben speichern oder ausgeben. OK?