ホームページ  >  記事  >  バックエンド開発  >  アップロードされた Excel ファイルの種類を検出するための PHP のサンプル コード

アップロードされた Excel ファイルの種類を検出するための PHP のサンプル コード

WBOY
WBOYオリジナル
2016-07-25 08:55:381307ブラウズ
  1. /**
  2. * アップロードされたファイルの種類を検出します
  3. * アップロードされたファイルの Excel ファイルの種類を検出します
  4. * @param array $file
  5. * @return bool $flag
  6. * @site bbs.it-home.org
  7. */
  8. private function detectUploadFileMIME($file) {
  9. // 1.ファイル拡張子判定03 or 07を通して
  10. $flag = 0;
  11. $file_array =explode ( ".", $file ["name"] );
  12. $file_extension = strto lower ( array_pop ( $file_array ) );
  13. // 2.バイナリコンテンツを通してファイルを検出します
  14. switch ($file_extension) {
  15. case "xls" :
  16. // 2003 Excel
  17. $fh = fopen ( $file ["tmp_name"], "rb" ) ;
  18. $bin = fread ( $fh, 8 );
  19. fclose ( $fh );
  20. $strinfo = @unpack ( "C8chars", $bin );
  21. $typecode = "";
  22. foreach ( $strinfo as $num ) {
  23. $typecode .= dechex ( $num );
  24. }
  25. if ($typecode == "d0cf11e0a1b11ae1") {
  26. $flag = 1;
  27. }
  28. 休憩;
  29. case "xlsx" :
  30. // 2007 Excel
  31. $fh = fopen ( $file ["tmp_name"], "rb" );
  32. $bin = fread ( $fh, 4 );
  33. fclose ( $fh );
  34. $strinfo = @unpack ( "C4chars", $bin );
  35. $typecode = "";
  36. foreach ( $strinfo as $num ) {
  37. $typecode .= dechex ( $num );
  38. }
  39. echo $typecode;
  40. if ($typecode == "504b34") {
  41. $flag = 1;
  42. }
  43. 休憩;
  44. }
  45. // 3.フラグを返す
  46. return $flag;
  47. }
复制代


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。