Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con curl + preg_match_all

Estas en el tema de Problema con curl + preg_match_all en el foro de PHP en Foros del Web. Buenas: Estoy intentando tomar el dato de los sorteos anteriores de euromillones, pero no logro capturar de forma correcta los datos, el array que los ...
  #1 (permalink)  
Antiguo 29/11/2013, 12:06
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 5 meses
Puntos: 0
Problema con curl + preg_match_all

Buenas:

Estoy intentando tomar el dato de los sorteos anteriores de euromillones, pero no logro capturar de forma correcta los datos, el array que los recoge parece que esta vacio , no logro encontrar donde falla ya que soy bastante novato en esto.

¿Podeis echar un ojo al codigo? , gracias.

<?php

$url="http://www.loteriasyapuestas.es/es/euromillones/sorteos/2013/855002095";
for($i=1;$i<4; $i++)
{
$handler = curl_init($url);
curl_setopt($handler, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1");
curl_setopt($handler, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
$pagina = curl_exec ($handler);
curl_close($handler);
$patron="/es/euromillones/sorteos/(.*?)\" title=\"ver anterior\"";
preg_match_all("($patron)iU", $pagina, $anterior);
$anteriora=$anterior[1][1];
$url="http://www.loteriasyapuestas.es/es/euromillones/sorteos/".$anteriora;
echo $url;
}

El error que me da es : Undefined offset: 1 , si no hago la asignacion a anteriora , me sale "array" , pero no logro que coja el dato bien.
  #2 (permalink)  
Antiguo 29/11/2013, 12:53
Avatar de luis_h_1  
Fecha de Ingreso: octubre-2010
Ubicación: México
Mensajes: 42
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problema con curl + preg_match_all

Hola, modifica la variable
Código PHP:
Ver original
  1. $anteriora=$anterior[1][1];
por
Código PHP:
Ver original
  1. $anteriora=$anterior[1][0];
y ya funciona, saludos.
  #3 (permalink)  
Antiguo 29/11/2013, 14:43
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problema con curl + preg_match_all

Cita:
Iniciado por luis_h_1 Ver Mensaje
Hola, modifica la variable
Código PHP:
Ver original
  1. $anteriora=$anterior[1][1];
por
Código PHP:
Ver original
  1. $anteriora=$anterior[1][0];
y ya funciona, saludos.
He esperado a probarlo por si acaso, pero estaba casi seguro que ya lo probe. Lo he vuelto a probar ,no funciona, ahora me da offset 0
  #4 (permalink)  
Antiguo 29/11/2013, 15:32
Avatar de luis_h_1  
Fecha de Ingreso: octubre-2010
Ubicación: México
Mensajes: 42
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problema con curl + preg_match_all

Lo acabo de probar en mi pc y si funciona mira:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $url="http://www.loteriasyapuestas.es/es/euromillones/sorteos/2013/855002095";
  4. for($i=1;$i<4; $i++)
  5. {
  6. $handler = curl_init($url);
  7. curl_setopt($handler, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1");
  8. curl_setopt($handler, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
  9. curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
  10. $pagina = curl_exec ($handler);
  11. curl_close($handler);
  12. $patron="/es/euromillones/sorteos/(.*?)\" title=\"ver anterior\"";
  13. preg_match_all("($patron)iU", $pagina, $anterior);
  14. $anteriora=$anterior[1][0];
  15. $url="http://www.loteriasyapuestas.es/es/euromillones/sorteos/".$anteriora;
  16. echo $url."<br>";
  17. }
  18. ?>

  #5 (permalink)  
Antiguo 29/11/2013, 15:47
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problema con curl + preg_match_all

Cita:
Iniciado por luis_h_1 Ver Mensaje
Lo acabo de probar en mi pc y si funciona mira:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $url="http://www.loteriasyapuestas.es/es/euromillones/sorteos/2013/855002095";
  4. for($i=1;$i<4; $i++)
  5. {
  6. $handler = curl_init($url);
  7. curl_setopt($handler, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1");
  8. curl_setopt($handler, CURLOPT_HTTPHEADER, array("Accept-Language: es-es,en"));
  9. curl_setopt($handler, CURLOPT_RETURNTRANSFER, true);
  10. $pagina = curl_exec ($handler);
  11. curl_close($handler);
  12. $patron="/es/euromillones/sorteos/(.*?)\" title=\"ver anterior\"";
  13. preg_match_all("($patron)iU", $pagina, $anterior);
  14. $anteriora=$anterior[1][0];
  15. $url="http://www.loteriasyapuestas.es/es/euromillones/sorteos/".$anteriora;
  16. echo $url."<br>";
  17. }
  18. ?>

Copiado tal cual, y me sigue dando el mismo error, igual es problema del servidor local que tengo de apache, no lo entiendo. ¿Que version tienes tu?
  #6 (permalink)  
Antiguo 29/11/2013, 15:53
Avatar de luis_h_1  
Fecha de Ingreso: octubre-2010
Ubicación: México
Mensajes: 42
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problema con curl + preg_match_all

Cita:
Iniciado por pedazovago Ver Mensaje
Copiado tal cual, y me sigue dando el mismo error, igual es problema del servidor local que tengo de apache, no lo entiendo. ¿Que version tienes tu?
Tengo:
Apache/2.4.6 (Ubuntu)
PHP Version 5.5.3-1ubuntu2
  #7 (permalink)  
Antiguo 29/11/2013, 16:00
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problema con curl + preg_match_all

Cita:
Iniciado por luis_h_1 Ver Mensaje
Tengo:
Apache/2.4.6 (Ubuntu)
PHP Version 5.5.3-1ubuntu2
Yo estoy bajo windows 7 y un poco anticuado apache 2.0.54 , php 5.0.4

Voy a actualizar ambos y ahora cuento que ha pasado.

Mil gracias
  #8 (permalink)  
Antiguo 29/11/2013, 17:18
 
Fecha de Ingreso: noviembre-2013
Mensajes: 10
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Problema con curl + preg_match_all

SOLUCIONADO

Borre todo lo que tenia de php , apache, etc.... Instale la última version de XAMPP y funciono a la primera .

Gracias por la ayuda luis_h_1

Etiquetas: curl
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:38.