Co to jest .inc i po co go używać?


139

Często widzę przykłady w PHP zawierające pliki.inc. Jakie jest znaczenie .inc? Do czego służy? Jakie są wady i zalety korzystania z niej?

Odpowiedzi:


268

To nie ma znaczenia, jest to tylko rozszerzenie pliku. Niektórzy ludzie nazywają pliki z rozszerzeniem .inc, jeśli ten plik jest przeznaczony do dołączenia do innych plików PHP, ale jest to tylko konwencja.

Ma to możliwą wadę polegającą na tym, że serwery normalnie nie są skonfigurowane do analizowania plików .inc jako php, więc jeśli plik znajduje się w katalogu głównym, a serwer jest skonfigurowany w domyślny sposób, użytkownik może wyświetlić kod źródłowy php w plik .inc, odwiedzając bezpośrednio adres URL.

Jedyną możliwą zaletą jest to, że łatwo jest zidentyfikować, które pliki są używane jako dołączone. Chociaż zwykłe nadanie im rozszerzenia .php i umieszczenie ich w folderze zawiera, ma ten sam efekt bez wspomnianej powyżej wady.


8
@domanokz Tak, wtedy korzystanie z niego będzie bezpieczne. Będzie traktowany jako php tylko wtedy, gdy zostanie użyty w strukturze requirelub includei będzie traktowany jako zwykły tekst przez resztę czasu. Traktowanie go jako tekstu na serwerze nie zaszkodzi, boli tylko wtedy, gdy kod zostanie udostępniony jako tekst użytkownikowi końcowemu).
Paweł,

@Paulpro Zastanawiałem się nad tym od dłuższego czasu, dziękuję za wyjaśnienie!
RealDeal_EE'18

1
Świetne wyjaśnienie. Właśnie rozpocząłem nową pracę i zobaczyłem, że są one zaśmiecone w aplikacji. Nie miałem pojęcia, że ​​to czysta konwencja. Dzięki!
Chev

4
Jeśli chodzi o serwer, który nie jest skonfigurowany do parse.inc plików jako php. W rzeczywistości nie musi tak być, ponieważ są one odczytywane tylko z innych plików php w pliku require / include. Czy jest bezpieczny? Jak Paulpro wskazuje, że nie chcesz dociekliwego kodu odczytującego użytkownika końcowego, więc chcesz skonfigurować pliki tak, aby nie były możliwe do odzyskania przez użytkownika końcowego za pomocą czegoś takiego jak „RedirectMatch 403 /.*\.inc$” w konfiguracji Apache lub. htaccess
ClearCrescendo

Uwaga: nie dotyczy to tylko .phpi .inc. PHP obejmuje również pracę z innymi typami plików. Dołączenie „.html”, „.js”, „.css”, „.txt” lub dowolnych niestandardowych rozszerzeń plików spowoduje, że parsowanie PHP odczyta z niego kod PHP. Przydatne, gdy chcesz utworzyć bazę danych opartą na plikach i chcesz sprawdzić, czy jest to plik bazy danych. jak .data. Następnie możesz użyć komentarza @ ClearCrescendo powyżej, aby go zabezpieczyć.
Jomar Sevillejo

71

Jeśli martwisz się zawartością pliku, a nie jego wyjściem. Można użyć podwójnego rozszerzenia jak: file.inc.php. Następnie służy temu samemu celowi przydatności i łatwości konserwacji.

Zwykle mam 2 pliki php dla każdej strony w mojej witrynie:

  1. Jeden nazwany welcome.phpw folderze głównym, zawierający wszystkie znaczniki HTML.
  2. I inny nazwany welcome.inc.phpw incfolderze, zawierający wszystkie funkcje PHP specyficzne dla welcome.phpstrony.

EDYCJA: Kolejną zaletą korzystania z podwójnego rozszerzenia .inc.phpbyłoby to, że każde IDE może nadal rozpoznawać plik jako kod PHP.


4
+1 Warto wspomnieć, zrobiłem to w jednym z moich projektów.
dpp

17

Ogólnie oznacza, że ​​jest to plik, który musi zostać dołączony i sam w sobie nie tworzy samodzielnego skryptu.

To jest konwencja, a nie technika programowania.

Chociaż jeśli twój serwer WWW nie jest poprawnie skonfigurowany, może ujawnić pliki z rozszerzeniami takimi jak .inc.


12

Jest to tylko sposób, aby deweloper mógł łatwo zidentyfikować pliki, które mają być używane jako dołączone. To popularna konwencja. Nie ma to żadnego specjalnego znaczenia dla PHP i nie zmieni zachowania PHP ani samego skryptu.


4

Jest to konwencja, której programista zwykle używa do identyfikacji różnych nazw plików dołączanych. Więc jeśli inni programiści pracują nad swoim kodem, mogą łatwo zidentyfikować, dlaczego ten plik istnieje i jaki jest cel tego pliku, po prostu widząc nazwę pliku.


3

Wystarczy dodać. Inną wadą byłoby to, że pliki .inc nie są rozpoznawane przez środowisko IDE, więc nie można byłoby skorzystać z funkcji autouzupełniania lub przewidywania kodu.


2

Moim zdaniem były one używane jako sposób na szybkie znajdowanie plików dołączanych podczas programowania. Naprawdę stały się one przestarzałe dzięki konwencjom i projektom ram.


To bezsensowny komentarz. Zawsze używam .inc do plików dołączanych, ponieważ jest to łatwe i nie ma żadnych negatywów, a tylko pozytywy. Termin „konwencje” nie ma żadnego odniesienia, którego znam w tym kontekście. I frameworki PHP, nie mam pojęcia, nigdy ich nie dotykam, piszę kod, więc pogląd, że „frameworki” zastąpiły kodowanie PHP jest po prostu błędny. Nie ma nic złego w używaniu tych rzeczy, jeśli ci się podoba, ale wiara w to, że zastąpiły one standardowe programowanie w edytorach kodu, jest po prostu błędna.
Lizardx

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.