working url_exists que not file_exists existe ejemplos directorio crear comprobar archivo php file-extension file-exists

url_exists - El archivo de verificación PHP existe sin saber la extensión.



si archivo no existe php (3)

¿Sabías sobre la función de tipo de archivo PHP? http://php.net/manual/en/function.filetype.php

O de lo contrario is_file() http://www.php.net/manual/en/function.is-file.php

Necesito verificar si existe un archivo pero no sé la extensión.

IE me gustaría hacer:

if(file_exists(''./uploads/filename'')): // do something endif;

Por supuesto que no funcionará ya que no tiene extensión. la extensión será jpg, jpeg, png, gif

¿Alguna idea de una manera de hacer esto sin hacer un bucle?


Tendrías que hacer un glob():

$result = glob ("./uploads/filename.*");

y ver si $result contiene algo.


Tengo la misma necesidad y traté de usar glob pero esta función parece no ser portátil:

Vea las notas de http://php.net/manual/en/function.glob.php :

Nota: esta función no está disponible en algunos sistemas (p. Ej., Sun OS antiguo).

Nota: el indicador GLOB_BRACE no está disponible en algunos sistemas que no son GNU, como Solaris.

También es más lento que opendir, échale un vistazo a: Qué es más rápido: glob () u opendir ()

Así que he hecho una función de fragmento que hace lo mismo:

function resolve($name) { // reads informations over the path $info = pathinfo($name); if (!empty($info[''extension''])) { // if the file already contains an extension returns it return $name; } $filename = $info[''filename'']; $len = strlen($filename); // open the folder $dh = opendir($info[''dirname'']); if (!$dh) { return false; } // scan each file in the folder while (($file = readdir($dh)) !== false) { if (strncmp($file, $filename, $len) === 0) { if (strlen($name) > $len) { // if name contains a directory part $name = substr($name, 0, strlen($name) - $len) . $file; } else { // if the name is at the path root $name = $file; } closedir($dh); return $name; } } // file not found closedir($dh); return false; }

Uso:

$file = resolve(''/var/www/my-website/index''); echo $file; // will output /var/www/my-website/index.html (for example)

Espero que pueda ayudar a alguien, Ioan.