Foros del Web » Programando para Internet » PHP »

Como extraer con PHP, attributos de input de codigo HTML

Estas en el tema de Como extraer con PHP, attributos de input de codigo HTML en el foro de PHP en Foros del Web. Buenas Amigos, Tengo un problema y he intentado resolverlo pero no he podido con miles de maneras... a ver si me ayudan, voy a intentar ...
  #1 (permalink)  
Antiguo 16/10/2012, 14:45
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Como extraer con PHP, attributos de input de codigo HTML

Buenas Amigos,

Tengo un problema y he intentado resolverlo pero no he podido con miles de maneras... a ver si me ayudan, voy a intentar exponer lo que deseo hacer...

Resulta que quiero extraer del código HTML devuelto por una página .php, los valores de los atributos "value" de todos las etiquetas <input> del "type=text", osea necesito extraer el contenido de esas cajas de texto, las cuales al hacer la consulta a la página ejemplo ejemplo.php?cliente=5002, me las devuelve llenas con sus datos.

La idea es generar un ciclo FOR que me vaya imprimiendo todas estas cajas de texto de cada uno de los "clientes".

El problema no es como hacer el ciclo, eso yo lo se hacer.
El problema esta en que no se como extraer esos input del codigo html,
He intentado con XPATH, con DOM en php, y con las funciones de fgets() y nada....
Creo que el mayor problema es que es codigo HTML, porque si fuera XML ya lo habria echo...


Que me sugieren?... he intentado con expresiones regulares pero me cuesta plantearlas y no dan resultado.
  #2 (permalink)  
Antiguo 16/10/2012, 14:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Como extraer con PHP, attributos de input de codigo HTML

tienes DOMDocument y SImpleXML, un HTML es un XML en esencia y puede ser leído por una de éstas librerías
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 16/10/2012, 15:24
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Como extraer con PHP, attributos de input de codigo HTML

Gracias maycolalvarez, mira aqui esta el codigo que estoy usando
Código PHP:
<?php

$oldSetting 
libxml_use_internal_errorstrue );
libxml_clear_errors();

$html = new DOMDocument();
$html->loadHtmlFile'http://blablabla.com/admin/client_maintenance.asp?text1=SJO40027&BoxGo=Search' );

$xpath = new DOMXPath$html );
$inputs $xpath->query'//input' );

foreach ( 
$inputs as $input)
{
        echo 
$input->getAttribute'name' ), "\n";
}

libxml_clear_errors();
libxml_use_internal_errors$oldSetting );
?>
Pero me da resultado lo siguiente, lo cual es totalmente erroneo y ni siquiera si veo el codigo fuente de la url aparecen esos nombres:
Código HTML:
__VIEWSTATE __VIEWSTATEENCRYPTED __EVENTVALIDATION ctl00$boxno ctl00$pword ctl00$btnSubmit ctl00$awb ctl00$Tracking ctl00$track
Si lo pruebo con otras paginas mas sencillas, si me da el resultado correcto... pero en esta pagina no... ¿Sera por que el codigo HTML de ésta pagina esta muy mal estructurado y por ende no se puede interpretar y recorrer adecuadamente?
Por eso decia que si fuese XML seria mas facil puesto que es más estricto.
  #4 (permalink)  
Antiguo 16/10/2012, 15:45
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Como extraer con PHP, attributos de input de codigo HTML

Ya encontre cual es el problema...
Utilize saveHTMLFile() para ver que codigo estaba analizando y resulta que me esta analizando uno que no es...
Sucede que para que la url (http://blablabla.com/admin/client_maintenance.asp?text1=SJO40027&BoxGo=Search ), me devuelva la página correcta con los datos correctos, tengo que ingresar desde el inicio de blablabla.com y logearme.
Yo pense que si me logeaba y luego utilizaba mi codigo php, me iba a devolver igualmente la pagina correcta, porque tengo "sesion abierta" en el sitio blablabla.com. Pero resulta que no funciona, el codigo que me devuelve es el del inicio de blablabla.com.

¿Como puedo resolver esto?
Si yo pongo la URL en mi navegador http://blablabla.com/admin/client_maintenance.asp?text1=SJO40027&BoxGo=Search , me devuelve la pagina correcta porque tengo session abierta, pero como estoy utilizando el php para acceder, parece que no me devuelve la pagina correcta sino la de inicio... :(

Etiquetas: html, xpath
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 14:28.