PHPインクルードファイル

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>';


Web サイト内のすべてのページは、このメニュー ファイルを参照する必要があります。具体的なメソッドは次のとおりです:

<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

$name = 'andy';

$age = 18;
require "template.html";


return

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 コマンドを入力した後、システムによって環境変数が設定されます。これらのコマンドが存在するかどうかを確認し、存在する場合は実行します。

QQ图片20161009144823.png

2.include_path 設定

最初の方法:

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

次のようにコードをコピーします:

set_include_path(' . ' .PATH_SEPARATOR.'../library/'

.PATH_SEPARATOR.'./application/models/'
.PATH_SEPARATOR.'./application/lib/'
.PATH_SEPARATOR.get_include_path()); constant は、Linux システムでは「:」記号であり、Windows システムでは「;」記号です。
したがって、プログラムを作成するときは代わりに定数 PATH_SEPARATOR を使用するのが最善です。そうしないと、システムを Linux から Win システムに移植した場合、またはその逆の場合にエラーが発生します。

get_include_path は、現在の既存の環境変数と以前の設定を取得します。これは新しいシステム インクルードです。



学び続ける
||
<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>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜