2016-02-26 12 views
7

Przygotowuję strukturę dokumentów php, która jest dołączona. .cfg dla plików konfiguracyjnych, .tpl dla plików struktury szablonów, .dlf dla plików układów dokumentów, dbh dla połączeń z bazą danych i tak dalej.pliki .php wymagają rozszerzenia .php?

Teraz są nazywane .tpl.php, .dlf.php itd. Ale czy muszą również mieć rozszerzenie .php? Jeśli nie, czy są jakieś rozszerzenia, których nie powinienem używać? jak .exe dla plików wykonawczych ..

+2

Jak działają pliki? Czy są one dostępne na poziomie serwera, czy też używasz 'include()' lub 'require()', aby uzyskać dostęp do swoich danych? – Ben

+1

Nie, to tylko konwencja. Powinien jednak zgadzać się z konfiguracją innych składników systemu. Możesz wybrać dowolne rozszerzenie lub w ogóle go nie rozszerzać. Zapamiętaj http://blog.codinghorror.com/coding-for-violent-psychopaths/ –

+0

Jeśli są używane przez 'include' lub' require', każde rozszerzenie będzie działało. – mitkosoft

Odpowiedz

3

można zmienić server config do enterpret inne rozszerzenia plików jak PHP

W Apache można dodać do tego:

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

jeśli include pliki, a następnie Ewentualne przedłużenie zrobi:

w script.php:

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

będzie wszystko działać

3

Od Hiding PHP on PHP.net:

Inną taktyką jest skonfigurowanie serwerów internetowych, takich jak Apache do analizowania różnych typów plików przez PHP, albo z dyrektywą .htaccess, lub w samym pliku konfiguracyjnym Apache. Następnie można użyć mylących rozszerzenia:

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

Więc można dodać .htaccess regułę, która będzie oznaczać, że traktuje serwer .tpl, .dlf etc, jak gdyby były pliki PHP, tak jak poniżej:

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

Jednakże, jeśli jesteś po prostu używając include lub require, nie ma znaczenia, którego rozszerzenia używasz:

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

co zrobić, jeśli dołączone pliki zawierają zarówno kod PHP, jak i kod HTML? Czy nadal będzie działać tak jak z rozszerzeniem, czy mogę napotkać pewne problemy po drodze? Serwer to Linux ... – ThomasK

+1

Powinno być absolutnie w porządku - tak, jakbyś "włączał" zwykły plik '.PHP'. – Ben

Powiązane problemy