The following code is a php file extension judge
Check fileFile name extension validation
n ways to get file name extensions in PHP
Basically there are several ways to do this:
The 1th method:
function Get_extension ($file) {substr (STRRCHR ($file, '. '), 1);}
The 2nd method:
function Get_extension ($file) {return substr ($file, Strrpos ($file, '. ') +1);}
The 3rd method:
function Get_extension ($file) {return End (Explode ('. ', $file));}
The 4th method:
function Get_extension ($file) {$info = PathInfo ($file); return $info [' extension '];}
The 5th method:
function Get_extension ($file) {return pathinfo ($file, pathinfo_extension);}
The above several ways to look at a bit, seems to be OK, especially 1, 2 methods, I do not know PathInfo has a second parameter has been in use. But think about it, there are all sorts of problems with the first four methods. To get the file extension exactly right, you must be able to handle the following three special cases.
No file name extension
The path contains characters., such as/home/test.d/test.txt
The path contains characters., but the file does not have an extension. such as/home/test.d/test
Obviously: 1, 2 cannot handle the third case, 3 cannot handle the 13th case correctly. 4 can be handled correctly, but a warning is issued when there is no extension. Only the 5th method is the most correct method. By the way, look at the PathInfo method. The official web site is described below:
$file _path = pathinfo ('/www/htdocs/your_image.jpg '); echo "$file _path [' dirname ']\n"; echo "$file _path [' basename ']\n" echo "$file _path [' extension ']\n '; Echo ' $file _path [' filename ']\n '; Only in PHP 5.2+
It will return an array containing up to four elements, but there will not always be four, for example, without an extension, there will be no extension element, so the 4th method will not find a warning. But Phpinfo also supports the second parameter. You can pass a constant that specifies the data that returns a part:
Pathinfo_dirname-Catalogue
Pathinfo_basename-file name (with extension)
Pathinfo_extension-name extension
Pathinfo_filename-file name (without extension, php>5.2)
The values for these four constants are 1, 2, 4, 8, and at first I thought I could specify multiple by or operation:
PathInfo ($file, Pathinfo_extension | Pathinfo_filename);
It turns out that this is not going to work, and it only returns the smallest of the few that are being performed or operational. This is the constant with the smallest bit 1 in the four flag bits.
The above content to introduce the PHP file extension to judge and get the file extension of the N method, I hope you like.