Foros del Web » Programando para Internet » PHP »

Problemas con el CURL y ob_start()

Estas en el tema de Problemas con el CURL y ob_start() en el foro de PHP en Foros del Web. Muy buenas tardes, Tengo un pequeño-gran problema con el curl y el ob_start(). El problema es que el ob_start(); no me manda correctamente la información ...
  #1 (permalink)  
Antiguo 27/07/2011, 06:47
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Problemas con el CURL y ob_start()

Muy buenas tardes,

Tengo un pequeño-gran problema con el curl y el ob_start().
El problema es que el ob_start(); no me manda correctamente la información que requiere la función a la que llama, o eso creo, y desde ese momento, el programa peta porque antes de seguir necesito rellenar la variable global que se encuentra dentro de la función a la que llama ob_start().

Es un poco lioso, y no se ya por donde tirar. ¿Alguna sugerencia?

Aquí añado un poco de código para intentar ayudar a que lo entendáis...

Código PHP:
Ver original
  1. //Esta función analiza la salida del html y obtiene el identificador de hoja de presencia correcta.
  2.  
  3.     function get_timesheetsIds($html) {
  4.         $matches= array();
  5.         preg_match("/timesheet:([0-9]+)/", $html, $matches);
  6.         global $timesheet;
  7.         $timesheet= $matches[count($matches)-1];
  8.         echo "timesheet-->".$timesheet;
  9.         return $html;
  10.     }
  11.    
  12.     $ch3 = curl_init();
  13.  
  14.     curl_setopt($ch3, CURLOPT_URL, $url);
  15.     curl_setopt($ch3, CURLOPT_VERBOSE, FALSE);
  16.     curl_setopt($ch3, CURLOPT_COOKIEFILE, $cookie);
  17.     curl_setopt($ch3, CURLOPT_COOKIEJAR, $cookie);
  18.     curl_setopt($ch3, CURLOPT_REFERER, $url);
  19.     curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, TRUE);
  20.     curl_setopt($ch3, CURLOPT_AUTOREFERER, TRUE);
  21.     curl_setopt($ch3, CURLOPT_CRLF, TRUE);
  22.     curl_setopt($ch3, CURLOPT_HTTPHEADER, $header);
  23.  
  24.     ob_start("get_timesheetsIds");
  25.  
  26.     curl_exec($ch3);
  27.  
  28.     ob_end_clean();
  29.  
  30.     curl_close($ch3);
  #2 (permalink)  
Antiguo 27/07/2011, 09:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problemas con el CURL y ob_start()

Porque quieres usar ob_start si con tan solo hacer algo así
Código PHP:
Ver original
  1. <?php
  2. $c = curl_init('http://www.example.com/algo.txt');
  3. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  4. $page = curl_exec($c);
  5.  
  6. echo $page;
Es suficiente para almacenar el valor en una variable.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 27/07/2011, 10:25
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problemas con el CURL y ob_start()

A ver, soy un poco novato con relación a este tema, pero según tengo entendido, con el ob_start() lo único que busco es el id del timsheet que me lo devolverá la función a la que llama, mientras que como tu dices ($page=curl_exec()) lo que hago es almacenar la respuesta de la página a la que apunta el curl, es más, si quieres imprimir el curl_exec(), basta con no poner la curlopt_returntransfer, porque el curl_exec() ya te lo envía al navegador.

¿Me equivoco? si es así, no dudéis en explicar por favor.
Gracias.
  #4 (permalink)  
Antiguo 27/07/2011, 10:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Problemas con el CURL y ob_start()

Te recomiendo que pases por el area de aportes para que veas un tema que te ayudara con muchos ejemplos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 29/07/2011, 01:42
 
Fecha de Ingreso: julio-2011
Mensajes: 12
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problemas con el CURL y ob_start()

Vale, creo que he entendido el asunto, el curl_exec() solo te devolverá un booleano, mientras que con la opción returntransfer a true, si que me devolverá el churro del token de la pagina.
Reconozco estar equivocado sorry.
Lo que si que no he podido es conseguir que me funcione el ob_start(), por lo tanto, en su lugar he hecho:

$page=curl_exec($ch);
llamada a la funcion($page);

Y me he quitado de encima el ob_start("nombre funcion");

saludos

Etiquetas: formulario
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 02:21.