While using a statement to check if a file is a jpeg image, one may use something like:
if($image['type']=='image/jpeg'){
etc.code
}
This works fine in firefox but IE6 makes a distinction between jpeg and pjpeg(progressive jpeg).
To make sure the statement evaluates correctly in firefox and IE6 both, use:
if(($image['type']==('image/jpeg')||('image/pjpeg')){
etc.code
}
filetype
(PHP 4, PHP 5)
filetype — Gets file type
Description
string filetype
( string $filename
)
Returns the type of the given file.
Parameters
- filename
-
Path to the file.
Return Values
Returns the type of the file. Possible values are fifo, char, dir, block, link, file, socket and unknown.
Returns FALSE if an error occurs. filetype() will also produce an E_NOTICE message if the stat call fails or if the file type is unknown.
Examples
Example #1 filetype() example
<?php
echo filetype('/etc/passwd'); // file
echo filetype('/etc/'); // dir
?>
Notes
Note: The results of this function are cached. See clearstatcache() for more details.
Tip
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to List of Supported Protocols/Wrappers for a listing of which wrappers support stat() family of functionality.
filetype
varun dot m dot ajani at gmail dot com
06-Apr-2008 08:42
06-Apr-2008 08:42
st dot brinkmann at googlemail dot com
03-Apr-2008 03:33
03-Apr-2008 03:33
It should be a bit more savely to remove slashes first:
$ext = array_pop(split('.', str_replace(array("\\", "/"), array("", ""), $filename)));
rich dot fleming at NOSPAM dot gmail dot com
26-Feb-2008 11:08
26-Feb-2008 11:08
In response to zachary.s.scott[at]gmail[dot]com.
A simplified method would be to pop the last element off the array as that one will be your extension.
<?php
$file = "/some/path/to/your.file_stored_here.txt";
$extension = array_pop(explode(".", $file));
?>
$extension = 'txt'
you could further use this with basename to strip off the extension completely off the file...
<?php
$file = "/some/path/to/your.file_stored_here.txt";
$extension = array_pop(explode(".", $file));
$filename = basename($file, ".$extension");
?>
$extension = 'txt'
$filename = 'your.file_stored_here'
zachary.s.scott[at]gmail[dot]com
14-Jan-2008 12:15
14-Jan-2008 12:15
I find that if you're trying to get the extension of a file, this method isn't the what you want. I've written a function instead:
<?php
function fileExtension($file) {
$fileExp = explode('.', $file); // make array off the periods
$filetype = $fileExp[count($fileExp) -1]; // file extension will be last index in array, -1 for 0-based indexes
}
?>
ruach at chpc dot utah dot edu
11-Mar-2004 09:11
11-Mar-2004 09: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
