Buscar y extraer valores de un archivo Html

Cómo estás.
Quería preguntarte si puedes explicarme cómo hacer para analizar un archivo html en el que tengo una lista de precios e ir extrayendo los valores para guardar los mismos en una base de datos.
La estructura html del archivo es del tipo
<tr>
<td>Producto</td>
<td>Precio</td>
</tr>
.
Yo quiero ir extrayendo los valores Producto y Precio de toda la lista.

1 respuesta

Respuesta
1
Debes abrir la página como si fuese un fichero:
<?php
$url = 'http://www.example.com/pagina.php';
$gestor = fopen($url, 'r');
if ($gestor) {
while (!feof($gestor)) {
$bufer = fgets($gestor, 4096);
// Aqui tratas los datos obtenidos en $bufer
}
fclose ($gestor);
}
Una vez leído el fichero, buscas los datos según la estructura que tengas definida. Con la información que das no es suficiente, puesto que no se puede diferenciar un producto, de un precio, de cualquier otra cosa que esté entre
<td> y </td>
Perdón por la poca información, mientras tanto estuve investigando las funciones para trabajar con cadenas dentro de un archivo y pude lograr algo.
La manera en que logro diferenciar el producto del precio es porque las respectivas celdas tiene formatos diferentes, entonces buscando la etiqueta correspondiente con sus formatos llego al contenido de la misma. Eso ya lo logré.
El problema que me surgió ahora es que tanto en el código que me pasas como en el que estoy usando yo, se trabaja línea por línea (si mal no entiendo). Y en este caso particular el html aparece desarrollado en 1 sola línea todo el código.
Entonces debería usar una función que pueda encontrar todas las coincidencias dentro de una misma línea. Y ahí sí que me perdí completamente.
Quizás se te ocurra cómo hacer ésto mismo pero teniendo todo el html en 1 sola linea.
Muchas Gracias de antemano.
Puedes leer todo el fichero, añadiendo las filas a la misma variable y así tendrás todo el fichero en una variable:
<?php
$url = 'http://www.example.com/pagina.php';
$bufer="";
$gestor = fopen($url, 'r');
if ($gestor) {
while (!feof($gestor)) {
$bufer .= fgets($gestor, 4096);
// Aqui tratas los datos obtenidos en $bufer
}
fclose ($gestor);
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas