Foros del Web » Programando para Internet » PHP »

Como enfocarlo

Estas en el tema de Como enfocarlo en el foro de PHP en Foros del Web. Bueno tras leer mucho y la verdad, no enterarme de casi nada, espero encontrar aquí la guía necesaria. La idea es enviar un html (su ...
  #1 (permalink)  
Antiguo 15/03/2011, 17:13
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Como enfocarlo

Bueno tras leer mucho y la verdad, no enterarme de casi nada, espero encontrar aquí la guía necesaria.
La idea es enviar un html (su código fuente) mediante un form para extraer alguna información precisa y pasarla a una bd.
Googlear me llevó a leer sobre htmlsql-v0.5, jquery, simpledom para php y alguno que ya ni recuerdo, con lo que comprenderéis que al final estoy mas liado que la pata de un romano como se suele decir.

Lo único que conseguí con cierto éxito fue con simpledom, pero muy "simple" como listar los links o las imágenes.......

Código PHP:
<?php

include('simple_html_dom.php');

$html=file_get_html('notas.html');

foreach(
$html->find('a') as $element)
       echo 
$element->href '<br>';


?>
.

....... esto es sobre un fichero que esta en la raíz, pero como seria si lo recibo desde un form, y de todos los links de la lista que me genera solo quiero por ejemplo el 35 y 40 y si esta información la puedo incluir a una base de datos??

En fin ya veis que soy un profano en esto, si podéis ayudarme encantado

Un saludo.
  #2 (permalink)  
Antiguo 15/03/2011, 17:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como enfocarlo

entonces la idea sería obtener el HTML que recibes del formulario, guardarlo en un archivo, ¿y usar dicho archivo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/03/2011, 05:30
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como enfocarlo

Cita:
Iniciado por pateketrueke Ver Mensaje
entonces la idea sería obtener el HTML que recibes del formulario, guardarlo en un archivo, ¿y usar dicho archivo?
No, el código una vez extraído lo necesario puede borrarse (del formulario me llega el código fuente del html), la idea es recibir ese código, extraer lo que me interesa y guardar esta información.
  #4 (permalink)  
Antiguo 16/03/2011, 05:38
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Como enfocarlo

Puedes poner un ejemplo corto? es que no me entero muy bien de lo que quieres hacer
  #5 (permalink)  
Antiguo 16/03/2011, 06:32
 
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Como enfocarlo

Cita:
Iniciado por miktrv Ver Mensaje
Puedes poner un ejemplo corto? es que no me entero muy bien de lo que quieres hacer
Pues seguro que es culpa mía que no me expreso bien lo que quiero hacer

Desde este form enviarán el código fuente de una página web.....
Código HTML:
<form method="post" action="extraer.php">
<p>Pegar código fuente:<br />
<textarea name="cfuente" rows="20" cols="40">...Tu código aquí;...</textarea></p>
<input type="submit" name="submit" value="Enviar"></form>
</form> 
y quiero poder extraer ciertos datos y guardarlos en una db, pero como mis conocimientos ya digo que son nulos y después de leer muchos tutos de distintas posibilidades al final me lié mas si cabe, lo único que conseguí fue con simpledom, extraer los enlaces,
Código PHP:
<?php

include('simple_html_dom.php');

$html=file_get_html('notas.html');


foreach(
$html->find('a') as $element)
       echo 
$element->href '<br>';

?>
pero solo quiero alguno en concreto y poder guardarlo posteriormente, por supuesto mas datos pero ese seria un buen inicio en el que seguir trabajando yo.

Un saludo.
  #6 (permalink)  
Antiguo 16/03/2011, 06:45
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Como enfocarlo

Vale ahora si, más o menos es lo que había captado pero quería asegurarme.

Mírate esta respuesta, te pego una parte, supongo que es lo que quieres:

Código PHP:
$dom = new DOMDocument;
$dom->loadHTML($HTML);
$allElements $dom->getElementsByTagName('*');
echo 
$allElements->length
The above will output 8, because there is eight elements in the DOM. If you also need to know the distribution of elements, you can do

Código PHP:
$elementDistribution = array();
foreach(
$allElements as $element) {
    if(
array_key_exists($element->tagName$elementDistribution)) {
        
$elementDistribution[$element->tagName] += 1;
    } else {
        
$elementDistribution[$element->tagName] = 1;
    }
}
print_r($elementDistribution); 
This would return

Código PHP:
Array (
    [
html] => 1
    
[head] => 1
    
[title] => 1
    
[body] => 1
    
[p] => 2
    
[br] => 1
    
[img] => 1


http://stackoverflow.com/questions/3...gs-in-page-php

Saludos!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:50.