PHP file extension to determine and get file extension n methods _php instance

Source: Internet
Author: User
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_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.

  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.