.incとは何ですか?なぜそれを使用するのですか?


139

PHPで.incファイルを含む例をよく見ます。.incの意味は何ですか?それは何のために使用されますか?それを使用することの欠点と利点は何ですか?

回答:


268

意味はありません。単なるファイル拡張子です。そのファイルが他のPHPファイルに含まれるように設計されている場合、拡張子が.incのファイルに名前を付けることは一部の人々の慣習ですが、それは慣例にすぎません。

これには、サーバーが通常.incファイルをphpとして解析するように構成されていないという欠点がある可能性があるため、ファイルがWebルートにあり、サーバーがデフォルトの方法で構成されている場合、ユーザーはphpソースコードをURLに直接アクセスして.incファイルを作成します。

その唯一の可能な利点は、どのファイルがインクルードとして使用されているかを簡単に識別できることです。単純に.php拡張子を付けてインクルードフォルダーに配置しても、上記の欠点なしに同じ効果があります。


8
@domanokzはい、使用しても安全です。requireor include構造体で使用された場合にのみphpとして扱われ、それ以降はプレーンテキストとして扱われます。サーバー上でテキストとして処理しても問題はありません。コードがテキストとしてエンドユーザーに提供された場合にのみ問題があります。
ポール

@Paulpro私はしばらく前からこれを考えていました、これを明確にしてくれてありがとう!
RealDeal_EE'18

1
素晴らしい説明。新しい仕事を始めたばかりで、これらがアプリケーション全体に散らばっているのを見ました。それが純粋に慣例だとは思いもしませんでした。ありがとう!
Chev

4
サーバーがparse.incファイルをphpとして構成されていないことについて。require / includeで他のphpファイルからのみ読み込まれるため、実際にそうである必要はありません。安全ですか?Paulproが示すように、好奇心旺盛なエンドユーザーがコードを読み取ることを望まないので、Apache confまたは。 htaccess
ClearCrescendo 2014年

注:これがためだけではない.php.inc。PHPには、他の種類のファイルも使用できます。「.html」、「。js」、「。css」、「。txt」、または考えられる任意のカスタムファイル拡張子を含めると、PHPはそこからPHPコードを解析します。ファイルベースのデータベースを作成し、それがデータベースファイルであるかどうかを確認する場合に便利です。のように.data。次に、上記の@ClearCrescendoのコメントを使用してセキュリティで保護できます。
Jomar Sevillejo、2015

71

出力ではなくファイルのコンテンツが提供されることに懸念がある場合。次のような二重拡張を使用できます。file.inc.php。そして、それは有用性と保守性という同じ目的を果たします。

私は通常、サイトの各ページに2つのphpファイルを持っています。

  1. 名前付きの welcome.phpルートフォルダーでで、すべてのHTMLマークアップが含まれています。
  2. そしてwelcome.inc.phpincフォルダに名前が付けられた別の名前があり、welcome.phpページに固有のすべてのPHP関数が含まれています。

編集:二重拡張を使用するもう1つの利点は.inc.php、どのIDEでもファイルをPHPコードとして認識できることです。


4
+1言及する価値があります。私は自分のプロジェクトの1つでそれを行いました。
dpp、

17

一般的に、そのファイルはインクルードする必要があり、それ自体でスタンドアロンスクリプトを作成しないことを意味します。

これは、プログラミング手法ではなく規則です。

ただし、Webサーバーが適切に構成されていない場合、.incなどの拡張子を持つファイルが公開される可能性があります。


12

これは、開発者がインクルードとして使用されるファイルを簡単に識別できるようにするための方法にすぎません。それは人気のある慣習です。これは、任意の持っていない特別な意味を PHPにし、PHPの動作やスクリプト自体は変更されません。


4

これは、プログラマがインクルードファイルの異なるファイル名を識別するために通常使用する規則です。そのため、他の開発者が自分のコードで作業している場合、ファイルの名前を確認するだけで、このファイルが存在する理由とこのファイルの目的を簡単に特定できます。


3

追加するだけです。もう1つの欠点は、.incファイルがIDEで認識されないため、オートコンプリートやコード予測機能を利用できないことです。


2

私の意見では、これらは開発時にインクルードファイルをすばやく見つける方法として使用されていました。実際、これらは慣例やフレームワークの設計によって時代遅れになっています。


これは無意味なコメントです。.incは簡単で、ネガティブはなく、ポジティブのみなので、インクルードファイルには常に.incを使用します。「慣習」という用語には、この文脈で私が認識している指示対象がありません。そして、PHPフレームワークは、わからない、自分で触れないで、私がコードを書くので、「フレームワーク」がPHPコーディングに取って代わったという考えは間違っています。必要に応じて使用することで問題はありませんが、コードエディタで標準のプログラミングに取って代わられたと考えるのは間違いです。
Lizardx

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.