我正在使用file_get_contents()
从远程服务器上拉出一些图像,并且我希望在进一步处理之前确认结果字符串是否为JPG/PNG图像,例如在本地保存并创建拇指。PHP:如何检查file_get_contents()的结果字符串是否为JPG图像?
$string = file_get_contents($url);
你会怎么做?
我正在使用file_get_contents()
从远程服务器上拉出一些图像,并且我希望在进一步处理之前确认结果字符串是否为JPG/PNG图像,例如在本地保存并创建拇指。PHP:如何检查file_get_contents()的结果字符串是否为JPG图像?
$string = file_get_contents($url);
你会怎么做?
您可以使用getimagesize()
$url = 'http://www.geenstijl.nl/archives/images/HassVivaCatFight.jpg';
$file = file_get_contents($url);
$tmpfname = tempnam("/tmp", "FOO");
$handle = fopen($tmpfname, "w");
fwrite($handle, $file);
$size = getimagesize($tmpfname);
if(($size['mime'] == 'image/png') || ($size['mime'] == 'image/jpeg')){
//do something with the $file
echo 'yes an jpeg of png';
}
else{
echo 'Not an jpeg of png ' . $tmpfname .' '. $size['mime'];
fclose($handle);
}
我只是测试它,所以它的工作原理。您需要创建一个临时文件,因为图像功能可以与本地数据一起工作,并且它们只接受本地目录路径,如'C:\ wamp2 \ www \ temp \ image.png'
如果您不使用fclose($handle);
PHP会自动脚本结束后删除tmp。
PS:PHP_EXIF扩展必须安装并启用 – HamZa 2013-03-22 14:11:37
@HamZaDzCyberDeV感谢您的更正,我编辑它,如你所说。 – 2013-03-22 14:14:27
也许非标准PHP函数exif_imagetype()http://www.php.net/manual/en/function.exif-imagetype.php
这是怎么回事? http://stackoverflow.com/questions/1141227/php-checking-if-the-images-is-jpg – George 2013-03-22 14:11:05