Foros del Web » Programando para Internet » PHP »

retardar el resultado de un curl

Estas en el tema de retardar el resultado de un curl en el foro de PHP en Foros del Web. Hola a todos, tengo una aplicacion para envio de sms, la aplicacion cuando envia un mensaje lo hace con Curl, y en funcion del resultado ...
  #1 (permalink)  
Antiguo 11/03/2009, 17:31
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 81
Antigüedad: 20 años, 2 meses
Puntos: 0
retardar el resultado de un curl

Hola a todos, tengo una aplicacion para envio de sms, la aplicacion cuando envia un mensaje lo hace con Curl, y en funcion del resultado se envia otro de confirmacion, el problema esta en que hay veces que el primer sms se retarda en su respuesta y la aplicacion php avanza y da un error, lo que necesito es saber como puedo poner un bucle para confirmar que tenemos respuesta....

Si no me he explicado bien os pongo parte del codigo:
Código PHP:
    $ch curl_init();
    
curl_setopt($chCURLOPT_URL$pagina);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_TIMEOUT5);
    
curl_setopt($chCURLOPT_POST1);
    
curl_setopt($chCURLOPT_POSTFIELDS$parametros);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);

    
$respuesta curl_exec($ch);
    
$error curl_error($ch);

    
curl_close($ch);

    
$cuerpo .= "\n<br>".$respuesta."<br>";

    
$respuestaLineas explode("\n"$respuesta);
    if(
preg_match('/100 BIEN/'trim($respuestaLineas[0]))){
        
$cuerpo .= trim($respuestaLineas[1])."<br>"
Me ha pasdo ya un par de veces que el if
if(preg_match('/100 BIEN/', trim($respuestaLineas[0]))){
se ha ejecutado sin tener la respuesta del curl, por eso lo que necesitaria es que $respuesta tenga un valor pero no se como detener el proceso para poder tener esa variable informada, siempre se optiene una respuesta, de q ha ido bien o mal...
Un saludo
__________________
VitoVi.com
Responsable Programación Web
  #2 (permalink)  
Antiguo 11/03/2009, 17:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: retardar el resultado de un curl

Hola vitogq,

Usa sleep() para poner a "dormir" el script por unos segundos en espera de la respuesta.

Saludos
  #3 (permalink)  
Antiguo 12/03/2009, 02:50
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 81
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: retardar el resultado de un curl

Cita:
Iniciado por GatorV Ver Mensaje
Hola vitogq,

Usa sleep() para poner a "dormir" el script por unos segundos en espera de la respuesta.

Saludos
Hola GatorV, gracias por responder, acabo de ver lo que hace la funcion y es bien simple, mi duda es donde deberia poner sleep() justo despues de la ejecucion del curl, antes de cerrarlo?
__________________
VitoVi.com
Responsable Programación Web
  #4 (permalink)  
Antiguo 12/03/2009, 09:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: retardar el resultado de un curl

Debes de ponerlo en donde estes esperando la respuesta para retardar que se vuelva a enviar otra respuesta antes.

Saludos.
  #5 (permalink)  
Antiguo 12/03/2009, 12:59
 
Fecha de Ingreso: enero-2004
Ubicación: Granada
Mensajes: 81
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: retardar el resultado de un curl

Cita:
Iniciado por GatorV Ver Mensaje
Debes de ponerlo en donde estes esperando la respuesta para retardar que se vuelva a enviar otra respuesta antes.

Saludos.
Hola de nuevo GatorV, he estado probado a ponerlo en diversos sitios, pero no me funciona le he puesto 5 seg y sigo sin optener la respuesta, cuando la respuesta se da rapido no hay problema, pero cuando la respuesta se demora no lo llego a recibir.

Sabes si por casualidad una llamada a curl_exec se puede meter en un while hasta que se optenga una respuesta pero que solo se ejecute una vez?

Gracias.
__________________
VitoVi.com
Responsable Programación Web
  #6 (permalink)  
Antiguo 12/03/2009, 14:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: retardar el resultado de un curl

No, en ese caso creo tu mejor opción es usar Sockets (fsockopen) y controlar la lectura con fread.

Saludos
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 20:09.