-------------- EDITAR ------------------------tabla HTML a array php
Así que voy con el enfoque DOM. Aquí es lo que tengo hasta ahora:
<?php function getdata(){
$contents = file_get_contents('internatdata.htm');
//create a DOM based off of the string from the html table
$DOM = new DOMDocument;
$DOM->loadHTML($contents);
//get all tr and td
$items = $DOM->getElementsByTagName('tr');
$tds = $DOM->getElementsByTagName('td');
function tdrows($elements){
$str = "";
for ($ii =0; $ii < $elements->length; $ii++){
$str .= $elements->item($ii)->nodeValue . ",";
}
return $str;
}
for ($i = 0; $i < $items->length; $i++){
echo tdrows($tds) . "; <br />";
}
}
?>
El problema que estoy teniendo es que yo sólo deseo seleccionar el TD de cada fila de la tabla. Estoy tratando de lograr esto con un bucle anidado. Desafortunadamente está imprimiendo el texto de cada etiqueta en la página tantas veces como etiquetas. ¿Cómo puedo obtenerlo así que solo imprime el td de cada tr y no cada td en el dom?
Necesito usar una tabla html como fuente de mis datos porque no tengo acceso a la base de datos. Me imagino que para poder consultar los datos de la tabla html, necesito crear una función para convertir la tabla en una matriz o una matriz multidimensional.
Tengo la idea básica, pero creo que necesito ayuda para terminar el código y devolver una matriz basada en la tabla html.
También si usted tiene una mejor forma de hacerlo que no sea la conversión de la tabla a un array, por favor hágamelo saber
Aquí es la idea que tuve hasta ahora:
<?php
function getdata(){
$contents = file_get_contents('data.htm');
//add delimiters (semicolon for a row and comma for a cell) ???
$stripped = strip_tags($contents);
//explode into an array based off the delimiters above ???
}
?>
La mejor manera sería utilizar un analizador DOM, por ejemplo http://php.net/manual/en/book.dom.php – jli
http: //stackoverflow.com/questions/3627489/php-parse-html-code –
¿'data.htm' solo contiene una tabla y su contenido, o es una página html completa con muchos más elementos? De todos modos, su código aún carece de toda la parte relacionada con el análisis sintáctico de los elementos de la tabla. IMO, buscaría una forma alternativa: no me gusta la idea de leer una tabla html. – jap1968