ホームページ php教程 php手册 深入理解require与require_once与include以及include_once的区别

深入理解require与require_once与include以及include_once的区别

Jun 06, 2016 pm 08:30 PM
include require require_once

本篇文章是对require与require_once与include以及include_once的区别进行了详细的分析介绍,需要的朋友参考下

PHP具有快速、可靠、跨平台应用、源代码开放等特点,使得PHP成为最受欢迎的服务器端Script语言之一。我根据自己在工作中体会到的,向大家介绍PHP使用的心得,希望对大家有所帮助。

利用PHP的Include files维护你的网站
不管你所开发的网站的规模是大是小,你都应该要认识到重复使用程序代码的重要性,不论你重复使用的是 PHP 程序或者是 HTML 原始码。举个例子来说,网站页尾的版权宣告至少每年都得修改一次,如果你的网站有许多个页面,该怎么办呢?动手一个一个修改这些页面肯定是一件头痛的事情。通过 PHP 我们可以用几个不同的方式来重复使用程序代码。要使用哪些函数端视你要重复使用的是怎样的内容而定。

这些主要的函数包括:
* include() 与 include_once()
* require() 与 require_once()

1.include() 函数会将指定的档案读入并且执行里面的程序。
例如:include('/home/me/myfile');
被导入的档案中的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到 include() 函数的位置相同的变量范围(variable scope)。你可以导入同一个服务器中的静态档案,甚至可以通过合并使用 include() 与 fopen() 函数来导入其它服务器上面的档案。

2.include_once()函数的作用和 include() 是几乎相同的
唯一的差别在于 include_once() 函数会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入该档案(这项功能有时候是很重要的,比方说要导入的档案里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个档案,在第二次导入的时候便会发生错误讯息,因为 PHP 不允许相同名称的函数被重复宣告第二次)。

3.require()函数会将目标档案的内容读入,并且把自己本身代换成这些读入的内容。
这个读入并且代换的动作是在 PHP 引擎编译你的程序代码的时候发生的,而不是发生在 PHP 引擎开始执行编译好的程序代码的时候(PHP 3.0 引擎的工作方式是编译一行执行一行,但是到了 PHP 4.0 就有所改变了,PHP 4.0 是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require() 通常来导入静态的内容,而 include() 则适合用来导入动态的程序代码。

4.如同 include_once()函数,require_once() 函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
我个人习惯使用 require() 函数来导入版权宣告(copyrights),静态文字或其它本身不含有变量,或者本身需要倚赖其它执行过的程序才能正确执行的程序代码。例如:

复制代码 代码如下:



网页标题

[一堆内容]

// 导入版权宣告文字
require('/home/me/mycopyright');
?>



另一方面,我通常在程序的开头使用 include() 函数来导入一些函式库或者类似的程序代码:

复制代码 代码如下:



// 导入我的函式库
include('/home/me/myfunctions');
// 利用之前导入的函式库里面定义好的 PHP 函数执行一些功能
?>

网页标题

[一堆内容]



接下来你可能会问这第一个挺符合逻辑的问题:「这些被导入的档案要放在哪儿呢?」简短的答案是:「放在服务器档案系统里的任何地方都行。」然而,要留意的是如果被导入的档案除了单纯的程序代码片段以外还包含了一些敏感资料,例如连结数据库系统要用到的帐号和密码,那么建议你不要把这些档案放在 Web 服务器的文件根目录之下,因为那样的话他人便可以很容易地窃取到这些资料了。

你可以将这些被包含的档案放在系统的任何一个目录里面,唯一的条件是 PHP 本身用来执行的身分(www,nobody 或者其它身分)必须要有足够的权限能够读取这些档案就可以了。这些档案的扩展名也可以任意取,甚至没有附档名也无所谓。

善用include()和 require()来将网站里面经常需要变动的共享内容做合理的分割,香港服务器,在更新网站内容的时候将会容易进行得多。

利用PHP来维护档案系统
PHP 提供了很多与档案系统相关的函数,让我们不仅可以开启档案,还能够显示目录的内容,搬移档案的位置以及其它更多功能。有的朋友甚至写了能够通过浏览器来管理档案内容的 PHP 程序。

在开始介绍 PHP 的档案系统相关功能之前,我们要先理清一件事情:在 Windows操作系统里面,美国空间,档案路径可以使用斜线(/)或者反斜线(\)来表示,但是在其它操作系统里面我们只会使用到斜线。为了保持统一性,下面的例子里面的档案路径都是使用斜线。

下面的例子程序我将教大家基本的目录内容显示功能,每个步骤都有批注,请直接阅读。

复制代码 代码如下:


/* $dir_name 这个变量的值是你想要读取的目录的完整路径 */
$dir_name = "/home/me/";
/* opendir()函数会开启某个目录,并且传回一个参考值(handle)让我们可以用来在程序中参照到该目录 */
$dir = opendir($dir_name);
/* 开始建立一个字符串,这个字符串包含了 HTML 的列表卷标,用来显示目录中的文件名称。 */
$file_list = "

    ";
    /* 使用一个 while 循环叙述将前面开启的目录中的档案全部读取一遍。如果读取到的档名不是「.」或者「..」,就把该档名写入前面提到的字符串里面去。 */
    while ($file_name = readdir($dir)) {
    if (($file_name != ".") && ($file_name != "..")) {
    $file_list .= "
  • $file_name";
    }
    }
    /* 替 HTML 列表卷标加上结尾 */
    $file_list .= "
";
/* 关闭之前开启的目录并且结束这段 PHP 程序 */
closedir($dir);
?>





Files in: echo "$dir_name"; ?>



echo "$file_list"; ?>



经过上面几步,你已经成功把某个目录中的文件名称显示在网页上了。但你要记住一点:要读取某个目录或者档案(读取档案内容的做法稍后会介绍),PHP 本身执行所用的身分必须至少拥有该目录或者档案的读取权限才行,否则系统会显示权限不足的错误讯息。

下一个例子我将教大家如何复制一个档案:

复制代码 代码如下:

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vue3+vite: src に画像を動的にインポートするために require を使用するときのエラーを解決する方法 vue3+vite: src に画像を動的にインポートするために require を使用するときのエラーを解決する方法 May 21, 2023 pm 03:16 PM

vue3+vite:src は、イメージとエラー レポートと解決策を動的にインポートするために require を使用します。vue3+vite は複数のイメージを動的にインポートします。vue3。TypeScript 開発を使用している場合、イメージを導入するために require のエラー メッセージが表示されます。requireisnotdefined は使用できません。 vue2 のような imgUrl:require(' .../assets/test.png') は、typescript が require をサポートしていないため、インポートされます。そのため、import が使用されます。解決方法は次のとおりです: awaitimport を使用します

php include と include_once の違いは何ですか php include と include_once の違いは何ですか Mar 22, 2023 am 10:38 AM

PHP を使用して Web ページを作成する場合、他の PHP ファイルのコードを現在の PHP ファイルに含める必要がある場合があります。現時点では、include 関数または include_once 関数を使用してファイルのインクルードを実装できます。では、include と include_once の違いは何でしょうか?

require の用途は何ですか? require の用途は何ですか? Nov 27, 2023 am 10:03 AM

require の使用法: 1. モジュールの導入: 多くのプログラミング言語では、require は外部モジュールまたはライブラリを導入し、それらが提供する関数をプログラム内で使用できるようにするために使用されます。たとえば、Ruby では、require を使用してサードパーティのライブラリまたはモジュールをロードできます。 2. クラスまたはメソッドのインポート: 一部のプログラミング言語では、require を使用して特定のクラスまたはメソッドをインポートし、現在のファイルで使用できるようにします。 ; 3. 特定のタスクを実行する: 一部のプログラミング言語またはフレームワークでは、特定のタスクまたは関数を実行するために require が使用されます。

PHP 警告: require_once():ソリューション PHP 警告: require_once():ソリューション Jun 25, 2023 pm 12:42 PM

PHP 開発者であれば、PHP プログラミングではさまざまなエラーや警告が頻繁に発生することを知っておく必要があります。よく発生する問題の一つに「PHPWarning:require_once()」エラーが発生するため、この記事ではその解決方法を紹介します。まず、このエラーの意味を理解しましょう。 PHP コードで require_once() 関数を使用すると、指定されたファイルのロードが試行されます。ファイルが存在しない場合は、

PHP ヘッダーの致命的なエラーを解決する手順: require(): 必要な 'data/tdk.php' を開くことができませんでした (include_path='.;C:\php\pear') PHP ヘッダーの致命的なエラーを解決する手順: require(): 必要な 'data/tdk.php' を開くことができませんでした (include_path='.;C:\php\pear') Nov 27, 2023 pm 12:51 PM

PHP ヘッダーの Fatalerror:require():Failedopeningrequired'data/tdk.php'(include_path='.;C:phppear') を解決する手順 PHP を使用して Web サイトやアプリケーションを開発する場合、さまざまなエラーが発生することがよくあります。一般的なエラーの 1 つは、「fatalerror:require():Failed」です。

PHPにおけるrequireキーワードの役割と使い方を詳しく解説 PHPにおけるrequireキーワードの役割と使い方を詳しく解説 Jun 28, 2023 pm 11:31 PM

PHPにおけるrequireキーワードの役割と使い方を詳しく解説 PHP開発において、requireは非常によく使われるキーワードです。その機能は、現在のスクリプトで使用するために指定されたファイルをインクルードすることです。この記事ではrequireキーワードの機能と使い方を詳しく解説します。 1. require キーワードの役割 require キーワードは、ファイルの内容を現在のスクリプトに含めることができます。通常、ライブラリ ファイル、設定ファイルなどの必要な外部ファイルを含めるために使用されます。要求を使用する

PHP ヘッダーの致命的なエラーを解決する手順: require(): 必要な 'data/tdk.php' を開けませんでした PHP ヘッダーの致命的なエラーを解決する手順: require(): 必要な 'data/tdk.php' を開けませんでした Nov 27, 2023 am 10:41 AM

PHP ヘッダーの FatalError:require():Failedopeningrequired'data/tdk.php' を解決する手順 PHP Web サイトを開発および保守するときに、さまざまなエラーや例外が頻繁に発生します。一般的なエラーの 1 つは、「FatalError:require():Failedopeningrequired'data/tdk.php'」です。

PHPファイル:// PHPファイル:// Aug 20, 2023 pm 06:13 PM

はじめに PHP では、対応する組み込みラッパーの助けを借りて、さまざまな URL スタイル プロトコルをファイル システム関数と組み合わせて使用​​できます。 stream_wrapper_register() 関数を使用してカスタム ラッパーを定義することもできます。 PHP のデフォルトのラッパーは file:// で、ローカル ファイル システムを表します。他のプロトコルが明示的に使用されていない場合、PHP パーサーはそれをファイルシステム ラッパーとして扱います。ファイル システム関数 fopen()、file_get_contents() などに渡されるファイル名パラメータは、デフォルトで file:// プロトコルを使用します。 Windows でファイル名がスラッシュ、バックスラッシュ、またはドライバーで始まっていない場合

See all articles