Ankündigung

Einklappen
Keine Ankündigung bisher.

Spalte X aus Tabelle auslesen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Spalte X aus Tabelle auslesen

    Hi,

    bestimmt wurde das Thema schon öfter behandelt, jedoch suche ich schon seit über 6 Stunden und komme nicht weiter.

    Ich habe eine ausgelesene Tabelle:

    http://kfvmol.de/nuliga/staffel_tabe...3%BCck+14%2F15

    aus dieser Tabelle würde ich nun gerne lediglich die spalten 1,2,5,6 angezeigt bekommen.

    Mein bisheriger Code liefert mir lediglich die ganze Tabelle.

    =============================
    <?php
    $string = file_get_contents('http://kfvmol.de/nuliga/staffel_tabelle?staffel=178478&bereich=Mosel%2FEif el+u.+Nahe%2FHunsr%C3%BCck+14%2F15','r');
    $mark = ("'<table[^>]*>.*?</table>'si");
    if (preg_match ($mark,$string,$hits))
    {
    $table = $hits[0];
    }
    echo $table;
    ?>
    ==============================

    Ich habe schon versucht mir preg_match_all und so weiter, aber ich verstehe nicht wann welche spalte wiedergegeben wird.


    Vielen Dank für eure Hilfe

    Gruß
    Lukas


  • #2
    Beim Posten von Quellcode oder strukturierten Daten bitte bbCode verwenden ([php] für PHP, [html] für HTML, [code] für den Rest (Dumps, Queries..)) und Code geeignet einrücken.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Es wäre sicher klug einen vorgefertigten DOM-Parser zu nutzen. Hab mich noch nie mit der Thematik beschäftigt daher kann ich auch nicht genaueres dazu sagen.

      Aber Google hat das hier ausgeworfen:
      GitHub: https://github.com/sunra/php-simple-html-dom-parser
      Packagist: https://packagist.org/packages/sunra...tml-dom-parser

      Beispiel:
      PHP-Code:
      // Create DOM from URL or file
      $fileName 'http://kfvmol.de/nuliga/staffel_tabelle?staffel=178478&bereich=Mosel%2FEifel+u.+Nahe%2FHunsrück+14%2F15';
      $dom HtmlDomParser::file_get_html($fileName);

      // Find all td's
      foreach($dom->find('td') as $element) {
          
      var_dump($element);

      Wie genau du das dann für deine Wünsche modifizieren musst - darfst du bitte selber herausfinden.

      Ein spekulativer Vorschlag:
      PHP-Code:
      foreach ($dom->find('tr') as $tr) {
          
      $i 0;
          foreach (
      $tr->find('td') as $td) {
              
      $i++; // Nicht elegant aber hab ja keine Ahnung wie die Klasse ausschaut...
              
      if ($i and $i 4) {
                  
      // tu was mit $td
              
      }
          }

      Kommentar


      • #4
        @nikosch:
        Danke für die Info zum einfügen der Codes.
        Ich hoffe du kannst trotzdem auch eine Antwort auf meine Frage geben?

        @monolith:
        Ebenfalls danke für deinen Post, aber ähm, WAS?
        Wie installier ich denn diesen Dom-Parser? Bzw in welchen Ordner muss ich den einfügen?

        Zur Info, ich benutze xampp und wordpress, ebenfalls besitze ich momentan auch noch nicht die aktuellste php version.

        Gibt es evtl auch einen php code ohne i-welche zusätze zu installieren?

        Danke

        Gruß
        Lukas

        Kommentar


        • #5
          Informationen aus HTML zu fischen ist nicht nur unschön sondern auch eine undankbare Aufgabe.
          Gibt es keinen anderen Weg an die Informationen zu kommen?
          Beispielsweise über eine API, welche dir die Informationen als JSON oder XML liefert.
          Wenn es denn sein muss, tu dir das nicht an, mit regulären Ausdrücken dein Problem lösen zu wollen.
          Alternativ zu den Vorschlag von monolith kannst du auch DOMDocument nutzen, welches PHP ab Version 5 an Bord hat.
          Der Ansatz sieht dann in etwa so aus:
          PHP-Code:
          $html file_get_contents($url);
          $doc = new DOMDocument();
          $doc->loadHTML($html);
          $trNodeList $doc->getElementsByTagName("tr");
          foreach(
          $trNodeList as $trNode){
              
          $tdNodeList $trNode->getElementsByTagName("td");
                : 
          LG jspit
          PHP-Klassen auf github

          Kommentar


          • #6
            Evtl hilft Dir das:

            https://code.google.com/p/php-html2array/

            oder das:

            http://www.espend.de/artikel/html-ta...php-array.html

            Kommentar


            • #7
              Wenn es Dir aber nur um das "Anzeigen" geht kannst Du die Spalten auch mit css verstecken...

              Kommentar

              Lädt...
              X