php检查jpg图片是否损坏方法

可以教你个最简单的办法,对于JPG格式的图片,看最后两个字节是否是FFD9,如果不是的话,那么一般是不正常的,如果是其它格式的话,这个判断方式就不适用了.

正常的JPG文件都是以FFD8开头,FFD9结尾的,如果丢失了文件尾部,JPG仍然可以被识别,但是就会丢失部分图像数据.

当然,我说的这种只是简单的判断,可能丢失前的那段结尾的正好是FFD9,但显然还是不正确的,但基本够用,如果追求严谨,那么就得阅读JPEG的格式规范文档了,这已经不属于PHP的知识范畴了.

我试过判断图片格式和像素,你这显然不行,不够深入,要严谨,就必须深入了解JPG的存储.

至于php教程的GD库是否有相应的判断函数,我没关注过,你可以google,我就不多说了。欢迎你研究出来后共享,分享一个读取jpg的php文件,实例代码如下:

  1. $adress="IMG_XXX.JPG";
  2. $exif = read_exif_data ($adress);
  3. while(list($k,$v)=each($exif)) {
  4. if($k=="Thumbnail"){
  5. $fp=fopen ("/www/home/image/Thumbnail$adress",
  6. 'a');
  7. fwrite ($fp, $v);
  8. fclose ($fp);
  9. echo "<br />n";
  10. echo "n";
  11. echo "<br />n";
  12. }else{ //开源代码phpfensi.com
  13. echo "$k: $v<br />n";
  14. }
  15. }