php学习 第十五节

来源:互联网 发布:淘宝女装top排行榜 编辑:程序博客网 时间:2024/05/16 06:09

现在对php中的 文件引用加以学习。

服务器端引用 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

服务器端引用(Server Side Includes)

通过 include() 或 require() 函数,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。除了它们处理错误的方式不同之外,这两个函数在其他方面都是相同的。include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。

这两个函数用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。

include() 函数

include() 函数可获得指定文件中的所有文本,并把文本拷贝到使用 include 函数的文件中。

例子 1

假设您拥有一个标准的页眉文件,名为 "header.php"。如需在页面中引用这个页眉文件,请使用 include() 函数,就像这样:

<html><body><?php include("header.php"); ?><h1>Welcome to my home page</h1><p>Some text</p></body></html>

例子 2

现在,假设我们有一个在所有页面上使用的标准菜单文件。请看下面这个 "menu.php":

<html><body><a href="http://www.w3school.com.cn/default.php">Home</a> |<a href="http://www.w3school.com.cn/about.php">About Us</a> | <a href="http://www.w3school.com.cn/contact.php">Contact Us</a>

三个文件,"default.php"、"about.php" 以及 "contact.php" 都引用了 "menu.php" 文件。这是 "default.php" 中的代码:

<?php include("menu.php"); ?><h1>Welcome to my home page</h1><p>Some text</p></body></html>

如果您在浏览器中查看 "default.php" 的源代码,应该类似这样:

<html><body><a href="default.php">Home</a> |<a href="about.php">About Us</a> | <a href="contact.php">Contact Us</a><h1>Welcome to my home page</h1><p>Some text</p></body></html>

同时,当然,我们也将用相同的方法处理 "about.php" 和 "contact.php"。通过使用引用文件,在您需要重命名链接、更改链接顺序或向站点添加另一张网页时,只要简单地更新 "menu.php" 文件中的文本即可。

require() 函数

require() 函数与 include() 相同,不同的是它对错误的处理方式。

include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。

如果在您通过 include() 引用文件时发生了错误,会得到类似下面这样的错误消息:

PHP 代码:

<html><body><?phpinclude("wrongFile.php");echo "Hello World!";?></body></html>

错误消息:

Warning: include(wrongFile.php) [function.include]:failed to open stream:No such file or directory in C:\home\website\test.php on line 5Warning: include() [function.include]:Failed opening 'wrongFile.php' for inclusion(include_path='.;C:\php5\pear')in C:\home\website\test.php on line 5Hello World!

请注意,echo 语句依然被执行了!这是因为警告不会中止脚本的执行。

现在,让我们使用 require() 函数运行相同的例子。

PHP 代码:

<html><body><?phprequire("wrongFile.php");echo "Hello World!";?></body></html>

错误消息:

Warning: require(wrongFile.php) [function.require]:failed to open stream:No such file or directory in C:\home\website\test.php on line 5Fatal error: require() [function.require]:Failed opening required 'wrongFile.php'(include_path='.;C:\php5\pear')in C:\home\website\test.php on line 5

由于在致命错误发生后终止了脚本的执行,因此 echo 语句不会执行。

正因为在文件不存在或被重命名后脚本不会继续执行,因此现在多使用 require() 而不是 include()。

 

原创粉丝点击