Simon: <td>-Inhalt aus Textdatei speichern

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

  1. 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

    --
    Losung für Dienstag, 8. Februar 2005
    Meine Gerechtigkeit ist nahe, mein Heil tritt hervor, und meine Arme werden die Völker richten. (Jesaja 51,5)
    Jesus spricht: Seid standhaft, und ihr werdet euer Leben gewinnen. (Lukas 21,19)
    (Losungslink)
  2. 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

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. 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

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  3. 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?