PHPファイルの「file --mime-type」と「mimetype」


0

との違いを理解しようfile --mime-typeとしていmimetypeます。Ubuntu 12.04.4 LTSで、この単純なphpファイルに対して異なる結果が得られています。

<?php
  echo 'Hello world!';
?>

mimetypeとfileを使用してファイルのタイプを取得すると、次のようになります。

$ mimetype -b test.php
application/x-php

$ file -b --mime-type test.php
test/x-php

この質問('file --mime-type'および 'mimetype'コマンドは異なる結果を返す)は、しかし、以下をfile使用すると言います/etc/mime.types

$ grep php /etc/mime.types
application/x-httpd-php                         phtml pht php
application/x-httpd-php-source                  phps
application/x-httpd-php3                        php3
application/x-httpd-php3-preprocessed           php3p
application/x-httpd-php4                        php4
application/x-httpd-php5                        php5

なぜfileそれをテキストファイルと見なすのか、私は最も興味があります。RubyのMIMEタイプもタイプアプリケーションと見なしているため、これはRailsで問題を引き起こしています。

回答:


0

マンページに よると、からのコンパイル済み定義、からの定義、プレーンテキストからの定義、およびその他のファイルをfile使用しません。/etc/mime.types/usr/share/misc/magic.mgc/etc/magic

パッケージの/usr/share/misc/magic.mgcソースコードからソースコードを取得できfileます(magic/サブフォルダーを見てください)。

file返したい場合はapplication/x-php、以下を追加します/etc/magic

# PHP scripts
# Ulf Harnhammar <ulfh@update.uu.se>
0       search/1/c      =<?php                  PHP script text
!:mime  application/x-php
0       search/1        =<?\n                   PHP script text
!:mime  application/x-php
0       search/1        =<?\r                   PHP script text
!:mime  application/x-php
0       search/1/w      #!\ /usr/local/bin/php  PHP script text executable
!:mime  application/x-php
0       search/1/w      #!\ /usr/bin/php        PHP script text executable
!:mime  application/x-php
# Smarty compiled template, http://www.smarty.net/
# Elan Ruusamäe <glen@delfi.ee>
0       string  =<?php\ /*\ Smarty\ version     Smarty compiled template
>24     regex   [0-9.]+                         \b, version %s
!:mime  application/x-php
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.