verificar validar valida una saber pagina file_exists existe ejemplos comprobar buscar borrar archivos archivo php file curl fsockopen file-exists

php - validar - Cómo verificar si un archivo existe desde una url



validar pagina web php (6)

Hay otro Skywalker

Para cualquiera que busque y no quiera hacer solicitudes al archivo, ¡hay una manera! Simplemente use $_SERVER[''DOCUMENT_ROOT''] y la ruta relativa desde la url (usando parse_url ) y luego verifique con file_exists .

$_SERVER[''DOCUMENT_ROOT''] no garantiza tener una / sin barra diagonal, sin embargo, así lo he explicado en mi ejemplo a continuación.

Enlaces útiles

$ _SERVER índices (ver ''DOCUMENT_ROOT'')
parse_url
file_exists

Ejemplo

// Your URL here! $my_url = ''https://stackoverflow.com/opensearch.xml''; // Get document root $doc_root = $_SERVER[''DOCUMENT_ROOT'']; // Account for possible trailing slash if( substr( $doc_root, strlen( $doc_root )-1, 1 ) == ''/'' ){ $doc_root = substr( $doc_root, 0, strlen( $doc_root - 1 ) ); } // File location $file = $doc_root . parse_url( $my_url )[''path'']; // Update the src in the global if the child file exists if( file_exists( $file ) ){ // You''ve got yourself a file }else{ // File? What file? There''s no file here... }

Necesito verificar si existe un archivo en particular en un servidor remoto. Usar is_file() y file_exists() no funciona. ¿Alguna idea de cómo hacer esto de forma rápida y fácil?



Haga una solicitud con curl y vea si devuelve un código de estado 404. Realice la solicitud utilizando el método de solicitud HEAD para que solo devuelva los encabezados sin un cuerpo.


Hola de acuerdo con nuestra prueba entre 2 servidores diferentes, los resultados son los siguientes:

el uso de curl para verificar 10 archivos .png (cada uno de aproximadamente 5 mb) fue en promedio 5.7 segundos. ¡usar el control de encabezado para la misma cosa llevó un promedio de 7.8 segundos!

¡De modo que en nuestra prueba curl fue mucho más rápido si tiene que verificar archivos más grandes!

nuestra función curl es:

function remote_file_exists($url){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if( $httpCode == 200 ){return true;} return false; }

aquí está nuestra muestra de verificación de encabezado:

function UR_exists($url){ $headers=get_headers($url); return stripos($headers[0],"200 OK")?true:false; }


No necesita CURL para eso ... Demasiada sobrecarga para solo querer verificar si un archivo existe o no ...

Usa PHP''s get_header .

$headers=get_headers($url);

Luego, compruebe si $ result [0] contiene 200 OK (lo que significa que el archivo está allí)

Una función para verificar si una URL funciona podría ser esta:

function UR_exists($url){ $headers=get_headers($url); return stripos($headers[0],"200 OK")?true:false; } /* You can test a URL like this (sample) */ if(UR_exists("http://www.amazingjokes.com/")) echo "This page exists"; else echo "This page does not exist";


tienes que usar CURL

function is_url_exist($url){ $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if($code == 200){ $status = true; }else{ $status = false; } curl_close($ch); return $status; }