Foros del Web » Programando para Internet » PHP »

Fopen reemplazarlo por curl, como se hace?

Estas en el tema de Fopen reemplazarlo por curl, como se hace? en el foro de PHP en Foros del Web. Hola, antes que nada no soy un entendido de Php, soy un arriesgado que me animo a cosas que no se y a veces se ...
  #1 (permalink)  
Antiguo 14/12/2007, 00:01
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 16 años, 4 meses
Puntos: 0
Fopen reemplazarlo por curl, como se hace?

Hola, antes que nada no soy un entendido de Php, soy un arriesgado que me animo a cosas que no se y a veces se me van de las manos.

La cosa es que quiero implementar un script llamado xml category tree de mercadolibre en Dreamhost pero este aparentemente tiene la funcion fopen bloqueada.

Este es parte del codigo original que no anda en dreamhost:
Cita:
$xml_parserCtree = xml_parser_create();
xml_set_element_handler($xml_parserCtree, "startElementCtree", "endElementCtree");
if ($xM_gzip == 'Y') {
$fpCtree = gzopen($xM_file, "r") or die('No se pudo generar con GZIP');
} else {
$fpCtree = fopen($xM_file, "r");
}
while ($dataCtree = fread($fpCtree, 4096)) {
xml_parse($xml_parserCtree, $dataCtree, feof($fpCtree));
}
xml_parser_free($xml_parserCtree);
?>
Y yo lo modifique asi pero tampoco anda
Cita:
$xml_parserCtree = xml_parser_create();
xml_set_element_handler($xml_parserCtree, "startElementCtree", "endElementCtree");
if ($xM_gzip == 'Y') {
$fpCtree = gzopen($xM_file, "r") or die('No se pudo generar con GZIP');
} else {
$ch = curl_init(); // inicializa um controlador
$timeout = 5; // define um timeout - 5 é o que uso sempre
curl_setopt ($ch, CURLOPT_URL, $xM_file); // $url é a URL a ser aberta
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$res = curl_exec($ch); // salva o resultado em $res
//curl_close($ch); // fecha o controlador, para economizar memória

}
while ($dataCtree = fread($ch, 4096)) {
xml_parse($xml_parserCtree, $dataCtree, feof($ch));
}

xml_parser_free($xml_parserCtree);
?>
Me da este error:
Resource id #2http://www.mercadolibre.com.ar/jm/categsXml?as_site_id=MLA&gzip=N&as_categ_id=&as_ma x_level=4
Warning: fread(): supplied resource is not a valid stream resource in /home/.lillie/jovencato/paginade.com.ar/xml-categorytree.php on line 189

Saludos y gracias por todo de antemano
  #2 (permalink)  
Antiguo 14/12/2007, 09:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Fopen reemplazarlo por curl, como se hace?

Tu problema es que la libreria cURL al usar curl_exec no te regresa un recurso a un archivo, te regresa ya todo el resultado de tu consulta.

Así que debes de usar el código que usas con fopen o adaptar tu código de lectura para todo una cadena.

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 03:12.