命名空间定义更改mimetype

时间:2016-09-20 12:14:12

标签: php

我在定义命名空间(别名)时注意到奇怪的mimetype行为。每当我定义一个名称空间或包含\input的别名时,php源文件的mimetype从text/x-php变为text/x-tex

最小的 example.php 可能看起来像\input的环境并不重要。

<?php namespace \input; ?>

运行file --brief --mime-type example.php时,会打印mimetype text/x-tex而不是预期的text/x-php

只要删除input之前的反斜杠,mimetype就会切换回text/x-php

有人可以确认这种行为吗? 有人知道发生这种情况的原因吗? 除了更改命名空间本身之外,有没有人为此获得修复/解决方法?

1 个答案:

答案 0 :(得分:2)

file实用程序仅使用基于文件内容的一些启发式算法。在你的情况下,它看到了

  • 该文件是纯文本文件(无二进制文件)
  • 包含字符串\input,它是TeX
  • 中的预定义宏

似乎某种方式\input = TeX优先于<?php = PHP。

file实用程序不查看文件扩展名。 此外,这与您保存文件或使用哪个编辑器无关。这只是file的重要内容。

但是,这并不会改变PHP解释器,网络服务器或浏览器处理文件的方式。

(以某种方式相关:File on php showing HTML document