PHP インクルード ファイル
PHP include ステートメントと require ステートメント
PHP では、サーバーによって実行される前に、ファイルの内容を PHP ファイルに挿入できます。
include ステートメントと require ステートメントは、他のファイルに書かれた有用なコードを実行フローに挿入するために使用されます。
include と require は、エラーの処理方法を除いて同一です。require は致命的なエラー (E_COMPILE_ERROR) を生成し、エラーの発生後にスクリプトの実行が停止します。
· include は警告 (E_WARNING) を生成し、エラー発生後もスクリプトは実行を継続します。
インクルードされたファイルが見つからない場合でも実行を続行し、結果をユーザーに出力したい場合は、 include を使用します。それ以外の場合、フレームワーク、CMS、または複雑な PHP アプリケーション プログラミングでは、実行フローへのキー ファイルを参照するために常に require を使用します。これにより、重要なファイルが誤って失われた場合のアプリケーションのセキュリティと整合性が向上します。
ファイルを含めると、多くの作業が節約されます。これは、すべての Web ページに対して標準のヘッダー、フッター、またはメニュー ファイルを作成できることを意味します。その後、ヘッダーを更新する必要がある場合は、ヘッダー インクルード ファイルを更新するだけです。 ...「header.php」という名前のヘッダー ファイル。ページ内でこのヘッダー ファイルを参照するには、include/require を使用してください:
<html> <head> <meta charset="utf-8"> <title> php中文网 (php.cn)</title> </head> <body> <?php include 'header.php'; ?> <h1>欢迎来到我的主页!</h1> <p>一些文本。</p> </body> </html>
例 2
すべてのページで使用される標準メニュー ファイルがあるとします。
"menu.php":
echo '<a href="/">ホームページ</a>
<a href="/html">HTMLチュートリアル</a>
< a href="/php">PHP チュートリアル</a>';
<html> <head> <meta charset="utf-8"> <title> php中文网 (php.cn)</title> </head> <body> <div class="leftmenu"> <?php include 'menu.php'; ?> </div> <h1>欢迎来到我的主页!</h1> <p>一些文本。</p> </body> </html>例 3変数を定義するインクルード ファイル (「vars.php」) があるとします:
<?php $color='red'; $car='BMW'; ?>
<html> <head> <meta charset="utf-8"> <title>php中文网 (php.cn)</title> </head> <body> <h1>欢迎来到我的主页!</h1> <?php include 'vars.php'; echo "I have a $color $car"; // I have a red BMW ?> </body> </html>
includeファイルが存在しません
include "foo.php";
上記のコードには foo.php というファイルが含まれています。ファイルが存在しない場合、コードの実行後に次の警告メッセージが表示されます
Warning: include( foo.php): ストリームを開けませんでした: /var/www/web/test.php の 3 行目にそのようなファイルまたはディレクトリはありません
警告: include(): インクルードする 'foo.php' を開けませんでした (include_path=') .:/usr/ local/php/lib/php') の /var/www/web/test.php の 3 行目
絶対パスを設定します
include 'C:wampwwwfoo.php';
上記で絶対パスが設定されており、include_path の取得を回避できていますが、コードが他の人にコピーされ、その人が D:wamp または E:www を使用している場合はどうなるでしょうか?
現在のスクリプトが C:wampwwwindex.php の場合、index.php を
include __DIR__ に変更できます。
前の演習と同様に、相対パスを絶対パス
Once
include と require はそれぞれ、once 関数:
include_once と require_once
に対応します。主な機能は、
テンプレートの分離 です。
include または require Contains other code を使用するため、コードを別のファイルに分割することもできます
<?php
$name = 'andy';
$age = 18;
?>
<h1> ;<?= $name?> は <span><?=$age?></span> 歳</h1>?php
$age = 18;
require "template.html";
PHP ファイルの場合、インクルードされたファイル内の return ステートメントを使用することもできます
< ;? PHP
print_r($arr);
PHP include_path
include_ の場合、関数 include()、require()、および fopen_with_path() が使用されます。パスが設定されていない場合、これらの関数はデフォルトでファイルを開くときに Web ルート ディレクトリを検索します。 include_path が設定されている場合、これらの php 関数は最初に指定された include_path ディレクトリの下を検索します
1. include_path の意味
include()、require()、および fopen_with_path() 関数がファイルの検索に使用される場合、 include_path が設定されていない場合、これらの関数はファイルを開くときに、デフォルトで Web ルート ディレクトリを検索します。 , これら php 関数は、最初に指定された include_path ディレクトリの下を検索します。原理は、ウィンドウが cmd コマンドを実行するとき、いくつかの cmd コマンドを入力した後、システムによって環境変数が設定されます。これらのコマンドが存在するかどうかを確認し、存在する場合は実行します。
php.ini ファイル内の include_path 項目を変更します。
include_path = .:/usr/local/lib/php:./include
2 番目の方法:
ini_set メソッドを使用します。
ini_set("include_path", ".:../:./include:../include");
3. 注記
zendframework include 設定index.php
.PATH_SEPARATOR.'./application/models/'
.PATH_SEPARATOR.'./application/lib/'
.PATH_SEPARATOR.get_include_path()); constant は、Linux システムでは「:」記号であり、Windows システムでは「;」記号です。
したがって、プログラムを作成するときは代わりに定数 PATH_SEPARATOR を使用するのが最善です。そうしないと、システムを Linux から Win システムに移植した場合、またはその逆の場合にエラーが発生します。