Estos días de mucho trabajo me encuentro con cosas que nunca había hecho pero que no parecen ser taaaaan complicadas (en este caso pasar XML a MySQL). Pero me encontré con algo más que interesante.
Resulta que el archivo XML no lo tenía localmente sino que era parte de un sitio de internet, o sea que solo lo veía a través de una URL. Entonces como primer paso para armar mi programa busqué ver que me diga si el archivo existe o no.
Mi primer intento fue hacer algo como esto:
if(is_file(http://wwww.xxxxxxxxxxxx.com/xxxxxxxx.xml)){ echo "Archivo existente"; }else{ echo "Archivo inexistente"; }
Lamentablemente la cosa no funcionó, el archivo existía y me daba como resultado “Archivo inexistente”.
Ok, busquemos, San Google lo sabe seguro.
Recemos:
Google nuestro que estás en la red,
multi-enlazado sea tu nombre,
venga a nosotros tu PageRank,
hágase tu voluntad tanto en Blogger como en WordPress.
Danos hoy nuestras visitas de cada día,
perdona nuestro spam,
así como nosotros perdonamos a los que nos spammean,
no nos dejes caer de tu indexación,
y libranos de todo ban.
Luego del rezo obtuvimos esto:
$filename= 'http://xxx.xxxxxxx.com/xxxxxx.xml'; $file_headers = @get_headers($filename); if($file_headers[0] == 'HTTP/1.0 404 Not Found'){ echo "El archivo $filename no existe"; } else if ($file_headers[0] == 'HTTP/1.0 302 Found' & $file_headers[7] == 'HTTP/1.0 404 Not Found'){ echo "El archivo $filename no existe y fui redirigido a un 404"; } else { echo "El archivo $filename existe"; }
Espero que les sirva.
Saludos!