downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

flock> <filesize
[edit] Last updated: Fri, 25 May 2012

view this page in

filetype

(PHP 4, PHP 5)

filetypeObtiene el tipo de archivo

Descripción

string filetype ( string $filename )

Devuelve el tipo del archivo dado.

Parámetros

filename

Ruta del archivo.

Valores devueltos

Devuelve el tipo del archivo. Los valores posibles son fifo, char, dir, block, link, file, socket y unknown.

Devuelve FALSE si se produjo un error. filetype() también producirá un mensaje E_NOTICE si la llamada a las estadísticas falla o si el tipo de archivo es desconocido.

Ejemplos

Ejemplo #1 Ejemplo de filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Errores/Excepciones

En caso de fallo, se emite un E_WARNING.

Notas

Nota: Los resultados de esta función son guardados en caché. Para más información ver clearstatcache().

Sugerencia

Desde PHP 5.0.0, esta función también puede usarse con algunos URL wrappers. Consultar Protocolos y Envolturas soportados para deter4minar qué envolturas soportan la familia de funcionalidad de stat().

Ver también

  • is_dir() - Indica si el nombre de archivo es un directorio
  • is_file() - Indica si el nombre de fichero es un fichero normal
  • is_link() - Indica si el nombre de archivo es un enlace simbólico
  • file_exists() - Comprueba si existe un fichero o directorio
  • stat() - Da información acerca de un fichero
  • mime_content_type() - Detecta el MIME Content-type para un fichero (función obsoleta)



flock> <filesize
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes filetype
holdoffhunger at gmail dot com 05-Apr-2012 07:23
Something you may eventually want to do is to know the type of file simply by the suffix of the filename.  Functions like finfo_file and mime_ content_ type come close, but they don't actually list the filename suffix (like "txt" for "readme.txt"), and this filetype function seems to list "directory" or "file" only.

Knowing the filename suffix can be very useful, especially when managing a filesystem that has copies.  It's better to name the copy of a file as "readme(copy-1).txt" rather than "readme.txt(copy-1)", since the latter option probably isn't going to cooperate so well with your text editor/reader.  Here's a little code below that returns the suffix of a filename in a string.  It returns both the prefix and the suffix of the filename :

<?php

       
// Example Filename: "Homepage.php"
        // ------------------------------------

   
$file_name = "Homepage.php";

       
// Filename Data
        // ------------------------------------

   
$length_of_filename = strlen($file_name);
   
$last_char = substr($file_name, $length_of_filename - 1, 1);

       
// Parse Filename Backwards
        // ------------------------------------
   
   
for($i_parse_name = 0; $i_parse_name < $length_of_filename; $i_parse_name++)
    {

           
// Gather Data and Detect
            // ------------------------------------
       
       
$last_char = substr($file_name, $length_of_filename - $i_parse_name + 2, 1);
       
        if(
$last_char == ".")
        {
           
$filename_suffix = substr($file_name, $length_of_filename - $i_parse_name + 2, $i_parse_name);
           
$filename_prefix = substr($file_name, 0, $length_of_filename - strlen($filename_suffix));
           
$i_parse_name = $length_of_filename;
        }
    }
   
       
// Print Results
        // ------------------------------------
               
   
print("Filetype Results -- $filename_prefix ||| $filename_suffix");

       
// Example Results:
        // ------------------------------------
        //    Filetype Results -- Homepage ||| .php

?>

Other examples:

"Best.Page.in.the.Universe.xml"
    Filetype Results -- Best.Page.in.the.Universe ||| .xml

"Best.Page.in.the.Universe.xml5789"
    Filetype Results -- Best.Page.in.the.Universe ||| .xml5789

"Home.awesome.page.php"
    Filetype Results -- Home.awesome.page ||| .php
Abhi Jain 08-Jun-2011 12:01
Putting @ in front of the filetype() function does not prevent it from raising a warning (Lstat failed), if E_WARNING is enabled on your error_reporting.

The most common cause of filetype() raising this warning and not showing a filetype() in the output (it actually returns NULL) is, if you happened to pass just the 'Dir or File Name' and not the complete "Absolute or Relative Path" to that 'file or Dir'. It may still read that file and return its filetype as "file" but for Dir's it shows warning and outputs NULL.
eg:
$pathToFile = '/var/www';
$file = 'test.php';
$dir = 'somedir';

Output for filetype($file) will be returned as 'file' and possibly without any warning, but for filetype($dir), it will return NULL with the warning "Lstat failed", unless you pass a complete path to that dir, i.e. filetype($pathToFile.'/'.$dir).

This happened to me and found this solution after a lot of trial and error. Thought, it might help someone.
adlerweb 07-Oct-2010 01:09
filetype() does not work for files >=2GB on x86 Linux. You can use stat as a workarround:

$type=trim(`stat -c%F $file`);

Note that stat returns diffenerent strings ("regular file","directory",...)
7r6ivyeo at mail dot com 21-Nov-2008 05:29
I use the CLI version of PHP on Windows Vista.  Here's how to determine if a file is marked "hidden" by NTFS:

<?php
function is_hidden_file($fn) {

   
$attr = trim(exec('FOR %A IN ("'.$fn.'") DO @ECHO %~aA'));

    if(
$attr[3] === 'h')
        return
true;

    return
false;
}
?>

Changing <?php if($attr[3] === 'h') ?> to <?php if($attr[4] === 's') ?> will check for system files.

This should work on any Windows OS that provides DOS shell commands.
ruach at chpc dot utah dot edu 10-Mar-2004 05:11
There are 7 values that can be returned. Here is a list of them and what each one means

block: block special device

char: character special device

dir: directory

fifo: FIFO (named pipe)

file: regular file

link: symbolic link

unknown: unknown file type

 
show source | credits | sitemap | contact | advertising | mirror sites