tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
13
ZUGRIFFE
580
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Hallo zusammen

    ich habe eine einfache Tabelle in einem HTML-File. Auf einer Seite z.B. http://www.tabelle.com

    Nun möchte ich mit einem PHP Script die Informationen aus der zweiten Zeile in eine oder mehrere Variabeln schreiben (nicht auf dem selben Server).


    Code HTML-File:

    PHP-Code:
        <html>
        <
    head>
        <
    title>Text Tabell</title>
        </
    head>
        
        <
    body>
        <
    table width="792" border="0" cellspacing="0" cellpadding="0">
          <
    tr>
            <
    td><strong>Titel</strong></td>
            <
    td><strong>Zeit</strong></td>
            <
    td><strong>Monat</strong></td>
            <
    td><strong>Tag</strong></td>
            <
    td><strong>Stunde</strong></td>
          </
    tr>
          <
    tr>
            <
    td>Alles</td>  // möchte ich auslesen
            
    <td>Morgen</td// möchte ich auslesen
            
    <td>November</td// möchte ich auslesen
            
    <td>Freitag</td// möchte ich auslesen
            
    <td>6</td// möchte ich auslesen
          
    </tr>
        </
    table>
        </
    body>
        </
    html
    Besten Dank für die Hilfe
    Gruss PHPneu1
    Geändert von PHPneu1 (14.09.05 um 11:50 Uhr) Grund: Korrektur
     

  2. #2
    KoMtuR KoMtuR ist offline Mitglied Brokat
    Registriert seit
    Apr 2002
    Ort
    Chemnitz
    Beiträge
    440
    PHP-Code:
    <?php
    $html 
    = <<<HTML
    <html>
        <head>
        <title>Text Tabell</title>
        </head>
        
        <body>
        <table width="792" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><strong>Titel</strong></td>
            <td><strong>Zeit</strong></td>
            <td><strong>Monat</strong></td>
            <td><strong>Tag</strong></td>
            <td><strong>Stunde</strong></td>
          </tr>
          <tr>
            <td>Alles</td>  // möchte ich auslesen
            <td>Morgen</td> // möchte ich auslesen
            <td>November</td> // möchte ich auslesen
            <td>Freitag</td> // möchte ich auslesen
            <td>6</td> // möchte ich auslesen
          </tr>
        </table>
        </body>
        </html>
    HTML;

    $dom = new DomDocument;
    $dom->preserveWhiteSpace FALSE;
    $dom->loadHTML($html);

    $lines $dom->getElementsByTagName('tr');

    $childs $lines->item(1)->getElementsByTagName('td');
    foreach(
    $childs as $child) {
        echo 
    $child->nodeValue."\n";
    }

    ?>
    Ich würde dies mit nem DomDocument machen, weil .... ja weil es sehr übersichtlich ist finde ich

    http://de2.php.net/manual/de/ref.dom.php
    Da findeste die komplette Hilfe dafür.

    Wie du nun die kompletten HTML-Daten von einem anderen Server holen willst, weißt du ja bestimmt schon selber
     
    "Kreativität heißt, aus dem Chaos Ordnung zu schaffen."
    Georg Stefan Troller (*1921), östr. Journalist

    Tutorials:

  3. #3
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Danke für die erste Hilfe. Es geht...

    ABER

    ich habe nun noch mehr folgendes versucht:

    nun bekomme ich zwar die angaben raus, aber auch nette ander Feheler wie desen:

    Warning: DOMDocument::loadHTML() [function.loadHTML]: htmlParseEntityRef: no name in Entity, line: 3 in C:\Inetpub\Grab\grab.php on line 14

    und diese nicht zu knapp und am Schluss meine Daten-

    PHP-Code:
      
      $dom 
    = new DomDocument;
      
    $dom->preserveWhiteSpace FALSE;
      
    $dom->loadHTML($read); 
      
      
    $lines $dom->getElementsByTagName('tr');
      
      
    $childs $lines->item(2)->getElementsByTagName('td');
      foreach(
    $childs as $child) {
          echo 
    $child->nodeValue."\n";
      } 
    Der Fehler ist mir eigentlich egal. Doch wie bekomme ich nun meine Daten in eine Variabel.

    Danke für nochmalige Hilfe!

    Gruss
     

  4. #4
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Also nochmals ein Versuch

    wenn ich den unteren Code anwende bekomme ich meine Daten auf dem Bildschirm.
    Ich lese also aus einer Tabelle die zweite Zeile aus.

    Die Anzeige ist Alles Morgen November Freitag 6 (siehe oben im Post).

    Diese daten Fett möchte ich aber in einer Variabel einlesen. (Wenn ich sie mir ansehen möchte kann ich ja immer noch mit echo anzeigen lassen.)

    Bitte um dringende Hilfe.

    Danke

    PHP-Code:
       $dom = new DomDocument;
       
    $dom->preserveWhiteSpace FALSE;
       
    $dom->loadHTML($read); 
       
       
    $lines $dom->getElementsByTagName('tr');
       
       
    $childs $lines->item(2)->getElementsByTagName('td');
       foreach(
    $childs as $child) {
           echo 
    $child->nodeValue."\n";
       } 
     

  5. #5
    KoMtuR KoMtuR ist offline Mitglied Brokat
    Registriert seit
    Apr 2002
    Ort
    Chemnitz
    Beiträge
    440
    PHP-Code:
    $daten = array();
    foreach(
    $childs as $child) {
      echo 
    array_push($daten$child->nodeValue);

    Das sollte dir helfen.
     
    "Kreativität heißt, aus dem Chaos Ordnung zu schaffen."
    Georg Stefan Troller (*1921), östr. Journalist

    Tutorials:

  6. #6
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Danke

    aber in $daten steht nun 12345Array und nichtAlles Morgen November Freitag 6

    wie muss ich dies noch um hebeln?

    Danke
    Gruss
     

  7. #7
    KoMtuR KoMtuR ist offline Mitglied Brokat
    Registriert seit
    Apr 2002
    Ort
    Chemnitz
    Beiträge
    440
    Zitat Zitat von PHPneu1
    Danke

    aber in $daten steht nun 12345Array und nichtAlles Morgen November Freitag 6

    wie muss ich dies noch um hebeln?

    Danke
    Gruss
    die Variable $daten ist ein Array. Du kannst nun die einzelnen Sachen, die du haben willst mit zb. $daten[0], $daten[1]... usw. ansprechen.
     
    "Kreativität heißt, aus dem Chaos Ordnung zu schaffen."
    Georg Stefan Troller (*1921), östr. Journalist

    Tutorials:

  8. #8
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Cool vielen Dank nun geht alles

    Dank und nen schönen Abend
     

  9. #9
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Hallo

    habe diesen Post nochmals geöffnet:

    Wie kriege ich nun eine zusätzliches item(?) hineien?

    Besten Dank für die Hilfe

    Gruss
     

  10. #10
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Hallo nochmals

    Kann mir bitte noch jemand mit dem zusätzlichen Item helfen.
    ich möchte eine zusätzliche Zeile auslesen.

    Es ist dringend

    Vielen Dank
     

  11. #11
    KoMtuR KoMtuR ist offline Mitglied Brokat
    Registriert seit
    Apr 2002
    Ort
    Chemnitz
    Beiträge
    440
    wenn du eine extrazeile einlesen willst musste einfach statt
    PHP-Code:
    $childs $lines->item(1)->getElementsByTagName('td'); 
    eben ein anderes item ansprechen.

    Also für das nächste TR-Kontrukt (In der Darstellung ists eine neue Zeile) eben mit
    PHP-Code:
    $childs $lines->item(2)->getElementsByTagName('td'); 
     
    "Kreativität heißt, aus dem Chaos Ordnung zu schaffen."
    Georg Stefan Troller (*1921), östr. Journalist

    Tutorials:

  12. #12
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Hallo

    ich möchte aber zum beispiel item(1) und item(2) auslesen. Dies wären in meinem Fall zwei Zeilen einer Tabelle bzw. die Daten darin also 10 verschieden inhalte da 5 Spalten.

    muss ich die den nun so darstellen?

    PHP-Code:
      $dom = new DomDocument;
      
    $dom->preserveWhiteSpace FALSE;
      
    $dom->loadHTML($contents); 
      
      
    $lines $dom->getElementsByTagName('tr');
      
      
    $childs $lines->item(1)->getElementsByTagName('td');
      
    $childs $lines->item(2)->getElementsByTagName('td');
      
    $strDaten = array();
      foreach(
    $childs as $child) {
          
    array_push($strDaten$child->nodeValue);
      } 
     

  13. #13
    KoMtuR KoMtuR ist offline Mitglied Brokat
    Registriert seit
    Apr 2002
    Ort
    Chemnitz
    Beiträge
    440
    PHP-Code:
      $dom = new DomDocument;
      
    $dom->preserveWhiteSpace FALSE;
      
    $dom->loadHTML($contents);
      
      
    $lines $dom->getElementsByTagName('tr');

      
    $strDaten = array();  
      for(
    $zeile 1$zeile 3$zeile++) {  //Hier kannst du variabel auch mehrere Zeilen auslesen lassen
        
    $childs $lines->item($zeile)->getElementsByTagName('td');

        foreach(
    $childs as $child) {
          
    array_push($strDaten$child->nodeValue);
        }
      } 
    Nun werden in $strDaten alle Werte gespeichert. Da du weißt, dass eine Zeile 5 Spalten hat, sind also die Werte $strDaten[0] bis $strDaten[4] Zeile 1 und $strDaten[5] bis $strDaten[9] Zeile 2.
     
    "Kreativität heißt, aus dem Chaos Ordnung zu schaffen."
    Georg Stefan Troller (*1921), östr. Journalist

    Tutorials:

  14. #14
    PHPneu1 PHPneu1 ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    87
    Bestn Dank

    nun hat es funktioniert.

    Gruss
     

Ähnliche Themen

  1. JCheckBox neben Text in einer Tabelle
    Von FoolMoon im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 25.10.09, 20:05
  2. Antworten: 5
    Letzter Beitrag: 24.07.05, 05:52
  3. Text in einer Tabelle ersetzen.
    Von Arturoo im Forum PHP
    Antworten: 8
    Letzter Beitrag: 02.09.04, 12:48
  4. poitionierung von text in einer tabelle
    Von nocolors im Forum CSS
    Antworten: 1
    Letzter Beitrag: 18.10.03, 14:43
  5. Antworten: 2
    Letzter Beitrag: 12.06.03, 09:43