Semplice html parser dom tabella a matrice

Sto cercando di analizzare gli arrivi tavolo da qui [1] e mettere in un array, per essere in grado di formattare e mettere in una tabella.

Ho fatto qualche ricerca qua e là, ho avuto un po ‘ di codice da altre domande, ma non riesco a rendere la matrice e la tabella di guardare come vorrei.

Qualcuno mi può aiutare?

<?php
require('simple_html_dom.php');
$html = file_get_html('http://flightplan.romatsa.ro/init/fpl/flightslr/LRCL/');
$table = $html->find('table', 3);
foreach($table->find('tr') as $row) {
//initialize array to store the cell data from each row
$rowData = array();
foreach($row->find('td') as $cell) {
//push the cell's text to the array
$rowData[] = $cell->innertext;
}
echo "<table>";
echo "<td>";
echo $rowData[0]. " ";
echo "</td>";
echo "<td>";
echo $rowData[1]. " ";
echo "</td>";
echo "<td>";
echo $rowData[2]. " ";
echo "</td>";
echo "<td>";
echo $rowData[3]. " ";
echo "</td>";
echo "<td>";
echo $rowData[4]. " ";
echo "</td>";
echo "<td>";
echo $rowData[5]. " ";
echo "</td>";
echo "<td>";
echo $rowData[6]. " ";
echo "</td>";
echo "<td>";
echo $rowData[7]. " ";
echo "</td>";
echo "<td>";
echo $rowData[8]. " ";
echo "</td>";
echo "</table>";
}
?>
Quindi queste sono quasi due questioni separate. Il primo, è quello di analizzare i dati in un array formato che è possibile lavorare con e la seconda è uscita la matrice in un auspicabile formato. Potrebbe aiutare a risolvere il primo problema. A tal fine, sarebbe utile vedere un var_dump($rowData) uscita con quale struttura di dati che si sta tentando di raggiungere.
Hey Mike,il dump simile a questa (per ora): pastebin.com/KD6zP4Ui
che si presenta come due var dump accanto all’altro. Che è da $rowData? Se è la seconda serie, quindi il tuo codice sul display non funziona perché hai un array multi-dimensionale. e l’eco di un array è solo andando a darvi il vuoto.
L’attuale codice simile a questo: pastebin.com/KyvcnzZj . E il dump di simile a questo: pastebin.com/86BtwGc0 . La fonte della tabella è questa: goo.gl/RuKloV , sto cercando di ottenere arrivi da lì. Apprezzo il vostro aiuto.

OriginaleL’autore loplo | 2014-05-07

1 risposta

  1. 14

    Magari prova a mettere ogni riga in un array e poi ogni cella in un altro array. Speriamo che la volontà di fare quello che vuoi.

    require('simple_html_dom.php');
    $html = file_get_html('http://flightplan.romatsa.ro/init/fpl/flightslr/LRCL/');
    
    $table = $html->find('table', 3);
    $rowData = array();
    
    foreach($table->find('tr') as $row) {
        //initialize array to store the cell data from each row
        $flight = array();
        foreach($row->find('td') as $cell) {
            //push the cell's text to the array
            $flight[] = $cell->plaintext;
        }
        $rowData[] = $flight;
    }
    
    echo '<table>';
    foreach ($rowData as $row => $tr) {
        echo '<tr>'; 
        foreach ($tr as $td)
            echo '<td>' . $td .'</td>';
        echo '</tr>';
    }
    echo '</table>';

    Nota: questa soluzione richiede la simple_html_dom.php biblioteca. Lo trovi qui!

    OriginaleL’autore Michelle

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *