Home  >  Article  >  Backend Development  >  Summary of Seven Methods to Determine Image Format in PHP_PHP Tutorial

Summary of Seven Methods to Determine Image Format in PHP_PHP Tutorial

WBOY
WBOYOriginal
2016-07-21 15:09:00896browse

Use php to determine the format of the file image

Copy the code The code is as follows:

$ imgurl = "http://www.jb51.net/images/logo.gif";
//Method 1
echo $ext = strrchr($imgurl,'.');
echo '< ;hr>';
//Method 2
echo $ext1 = substr($imgurl,strrpos($imgurl, '.'));
echo '
';
/ /Method 3
echo(@end(explode(".",$imgurl)));
echo '
';
//Method 4
echo pathinfo($imgurl, PATHINFO_EXTENSION);
print_r(pathinfo($imgurl));
echo '
';
//Method 5
$imginfo= getimagesize($imgurl);
print_r( $imginfo);
echo end($imginfo);
echo '
';
//Method 6
$imghttp = get_headers($imgurl,true);
print_r ($imghttp);
echo '
';
//Method 7
echo exif_imagetype($imgurl);


Test result:

Summary of Seven Methods to Determine Image Format in PHP_PHP Tutorial

Method analysis:

The first way of thinking is to treat the image path as a string, then determine the image format. It becomes a string that searches for the . number.

Method 1: Use strrchr
strrchr() function to find the last occurrence of a string in another string and return all occurrences from that position to the end of the string character.

If it fails, return false otherwise. Note: This function is binary safe.

Method 2: strrpos
strrpos() function finds the last occurrence of a string in another string.

Returns the position if successful, false otherwise.

Note: This function is case sensitive. For case-insensitive searches, use strripos().

First calculate the position of the . sign, and then use substr to intercept the string

Method 3: explode split the string into an array, and take the last key value of the array
————————————————————————–

The second idea is to treat the image path as the file path, then the gd class is needed here Library function or php file function

Method 4: Use pathinfo()
pathinfo(path, options) function to return file path information in the form of an array

Includes the following array elements:

[dirname]
[basename]
[extension]
options parameters:

Optional. Specifies the array elements to be returned. The default is all.

Possible values:

PATHINFO_DIRNAME - only returns dirname
PATHINFO_BASENAME - only returns basename
PATHINFO_EXTENSION - only returns extension
Method 5: getimagesize to get the image size Format method, this is not the gd class library function
This method is very classic. It can not only determine the image format but also obtain the image length and width information

Method 6: get_headers to get http Header information
If the image path is a standard url path, you can use the get_header function. This function can return the http header

. In addition, this method can also determine whether the image file url is a Valid URL, usage reference: "PHP methods to determine whether the remote URL is valid"

Method 7: Use the gd class library function
exif_imagetype() to read an image of the first byte and check its signature.

Returns a corresponding constant if a suitable signature is found, otherwise returns FALSE. The return value is the same as index 2 in the array returned by getimagesize(), but this function is much faster.

Returned constant value: the corresponding value. For example, the example returns 1, which corresponds to the gif format image.

Summary of Seven Methods to Determine Image Format in PHP_PHP Tutorial

Comprehensive evaluation
The currently more mainstream method is method 1. If you consider security issues, you can use method 5, because method 5 can Determine whether this file is an image file (this can prevent someone from forging illegal programs into image files).

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/327399.htmlTechArticleUse php to determine the format of the file image. Copy the code as follows: ?php $imgurl = "http://www. jb51.net/images/logo.gif"; //Method 1 echo $ext = strrchr($imgurl,'.'); echo 'hr'; //Method...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn