Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2007, 00:01
jovencato
 
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