.php 文件需要 .php 扩展名吗?

does .php files need the .php extension?

提问人:ThomasK 提问时间:2/26/2016 最后编辑:ThomasK 更新时间:10/30/2019 访问量:4452

问:

我正在设置几个PHP文档,其中包括用于配置文件的.cfg,用于模板结构文件的.tpl,用于文档布局文件的.dfl,用于数据库连接的.dbh等。

现在它们被称为.tpl.php,.dlf.php等。但是他们是否也需要有 .php 扩展名?

如果没有,是否有任何我不应该使用的扩展?就像可执行文件的 .exe 一样。

PHP 文件

评论

2赞 Ben 2/26/2016
您如何运行这些文件?它们是在服务器级别访问的,还是您只是使用或访问他们的数据?include()require()
1赞 Alex Blex 2/26/2016
不,这只是一个惯例。不过,它应该与其他系统组件的配置一致。您可以自由选择任何扩展名,或者根本不选择扩展名。记住 blog.codinghorror.com/coding-for-violent-psychopaths
0赞 mitkosoft 2/26/2016
如果它们被用于槽式或,则任何扩展都将起作用。includerequire
0赞 ThomasK 2/26/2016
我正在像这样使用 .php 文档:index.php 需要 、 等等。但是为了更好地概述,最好排除最后一个 .php 扩展名部分。其中一些文件还包括其他文件。而且这些文件中不仅仅是纯 php 代码。还有一些html。这会有问题吗?includerequiresite.cfg.phpsite.ini.phpsite.tpl.php

答:

3赞 B-and-P 2/26/2016 #1

您可以更改服务器配置以将其他文件扩展名转换为 PHP

在 Apache 中,您可以添加以下内容:

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

如果你是文件,那么任何扩展名都可以:include

在脚本.php中:

include 'includes/foo.inc';
include 'inlcudes/bar.whatever';

都会起作用

5赞 Ben 2/26/2016 #2

在 PHP.net 上隐藏 PHP

另一种策略是配置 Web 服务器(如 apache)以通过 PHP 解析不同的文件类型,无论是使用指令还是在 apache 配置文件本身中。然后,您可以使用误导性的文件扩展名:.htaccess

# Make PHP code look like unknown types
AddType application/x-httpd-php .bop .foo .133t

因此,您可以添加一条规则,这意味着您的服务器将 等视为 PHP 文件,如下所示:.htaccess.tpl.dlf

AddType application/x-httpd-php .tpl .dlf .dbh

但是,如果您只是使用 or ,则使用什么扩展名并不重要:includerequire

include "inc/template.tpl";
require "inc/database.dbh";
require_once("inc/config.ext.php.url.tpl.cfg");

评论

0赞 ThomasK 2/26/2016
如果包含的文件同时包含 PHP 和 HTML 代码怎么办?它是否仍能像扩展一样工作,或者我在此过程中会遇到一些问题吗?服务器是 Linux...
1赞 Ben 2/26/2016
它应该绝对没问题 - 就像你在 -ing 一个普通文件一样。include.PHP