当前位置:首页 > 综合

php脚本文件的后缀名是

```html

php脚本文件的脚件后缀名是 .php。这事儿没什么可绕弯子的本文,你打开任何一个跑着WordPress的后缀服务器,或者随手翻一个Laravel项目的脚件目录,满眼都是本文这个后缀。我见过有人把PHP代码写成.html,后缀然后纳闷为什么浏览器直接把源码吐出来了——服务器根本不认,脚件它只对特定后缀的本文文件调用PHP解析器。

但后缀名这事儿,后缀真不是脚件随便定的。早期PHP/FI那会儿,本文文件后缀用的后缀是.phtml,后来才慢慢统一成.php。脚件现在你要是本文去翻一些老项目,比如phpBB2的后缀遗留代码,还能看到.php3、.php4这种带版本号的后缀。Apache的配置文件里至今保留着对这些老后缀的兼容写法,AddType application/x-httpd-php .php .phtml .php3,一行就能看出来历史包袱有多重。

为什么是.php而不是别的?说白了就是约定。服务器软件(Apache、Nginx)通过文件扩展名来判断该不该把这个文件丢给PHP解释器。你写个index.php,Nginx的location ~ \.php$规则一匹配,就转发给PHP-FPM处理。你要是改成index.phps,那多半就变成源码高亮显示了——有些服务器故意这么配置,方便开发者看源代码。

我自己的习惯是,项目里绝对不用.php5或者.php7这种后缀。看着就难受。后缀名应该保持稳定,版本信息写在代码里或者composer.json里,别往文件名上堆。见过一个老哥把文件命名成controller.php.bak,结果服务器照样当PHP解析,因为Apache的AddHandler有时候会匹配到.php那一截。这坑踩过一次就记住了。

还有一点,PHP文件后缀不区分大小写这事儿得看操作系统。Linux下Index.PHP和index.php是两个文件,但Apache的FilesMatch如果写成\.php$,默认是区分大小写的。Windows下就无所谓了,NTFS不区分。所以跨平台部署的时候,最好统一用小写.php,省得给自己找麻烦。

有些框架会玩花活。比如ThinkPHP早期版本允许你配置URL_HTML_SUFFIX,让URL看起来像静态页,但实际文件后缀还是.php。那只是路由层面的伪装,跟物理文件后缀没关系。别把这两个概念搞混了。

最后说个冷门的:.phar。这玩意儿是PHP的归档格式,本质上还是个PHP文件,只是里面打包了一堆东西。后缀名不一样,但PHP解释器照样认。你写个build.phar,命令行里php build.phar就能跑。这算是后缀名的一个变种,知道的人不多,但挺有用。

总结?没什么好总结的。记住.php就行,别的都是历史遗留或者特殊情况。写代码的时候老老实实用这个后缀,服务器配置里别乱改匹配规则,基本不会出问题。

```

分享到: