PHP文件包含语句 include、include_once、require、require_onc

 更新时间:2016年11月25日 16:08  点击:1770

1、include()
include(/path/to/filename)

include()语句将在其被调用的位置处包含一个文件。包含一个文件与在该语句所在位置复制制定文件的数据具有相同内容的效果。

使用include()时可以忽略括号。

可以根据条件来执行include()语句。在条件语句中使用include()有个怪现象,它必须包围在语句块大括号中,或者用其他语句包围符括起来。


2、include_once()
include_once(filename)

include_once()函数的作用与include相同,不过它会首先验证是否已经包含了该文件。如果已经包含,则不再执行include_once。否则,则必须包含该文件。除了这一点与include完全相同。

3、require()
require(filename)

require()在很大程度上与include相同,都是将一个模板文件包含到require调用坐在的位置。

require和include之间有两点重要的区别。首先,无论require的位置如何,制定文件都将包含到出现require的脚本中。例如,即使require放在计算结果为假的if语句中,依然会包含指定文件。

第二个重要的区别是:require出错时,脚本将停止运行,而在使用include的情况下,脚本将继续执行。

4、require_once()
require_once(filename)

随着网站越来越大,可能会出现重复包含某些文件。这也许不是问题,但又是修改了所包含文件的变量后,却由于后面再次包含原来的文件而被覆盖,可能不希望出现这种情况。还可能出现另一个问题,即所包含文件中函数名的冲突。使用require_once就可以解决这些问题。

require_once函数确保文件只包含一次。在遇到require_once后,后面再试图包含相同的文件时将被忽略。




在实际的应用中,经常会遇到一些特殊的情况,比如需要新闻,天气预报,等等,但是作为个人站点或者实力小的站点 我们不可能有那么多的人力 物力 财力去做这些事情,怎么办呢? 
好在互联网是 资源共享的,我们可以利用程序 自动的把别的站点的页面抓取回来经过处理后被我们所利用。
  用什么呢,那个战友给的是不行的,其实在Php有这个功能,那就是用curl库。请看下面的代码! 
<?php

$ch = curl_init ("http://dailynews.sina.com.cn");
$fp = fopen ("php_homepage.txt", "w");

curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
?>

   但有时会出现一些错误,但实际上已经下载完了!我问了老外,他们没有给我一个答复,我想实在不行,就在函数前面加个◎;这样我们只要对$txt进行适当的分析后,我们就可以偷偷的抓取sina的新闻!不过,还是不用的为好!以免发生法律纠纷,这里只是想告诉你Php的功能非常的强大!你可以做许多事情!  
 



PHP (Hypertext Preprocessor)是一种 HTML 内嵌式的语言,也是目前比较流行的网页编程语言。它支持的后端数据库种类凡多,几乎含盖了当前的所有数据库系统。同时它包含了一般语言有的数学运算、时间处理、文件系统、字符串处理、行程处理等功能,再加上它是免费的系统,使得成本与效益比,几乎等于无限大。
下面是我在用PHP做网站时,总结出一些小技巧,拿出来飨以大家。
1、判断某个函数是否被支持
由于在PHP中我们可以灵活的使用增加或者减少php支持的模块,所以有的时候我们在使用PHP之前,总是会首先确定某个模块是否被加载,比如,看看GD图形模块是否被支持,可以用下面的这段代码:
if(!function_exists(''imagecreate'')) {
die(''这个主机目前不支持GD图形模块'');
}
?>
同样的道理,我们可以利用类似的代码,测试 MSSQL,OCI等模块是否被支持。
2、在字符串中把网址改成超级链接
在网页中提交表单时,经常在提交的说明文本中出现一些网址,比如个人主页等信息,如果在显示时自动将其转为超级链接,那将是一件很惬意的事,就像用WORD编辑文档时自动出现超级链接一样。下面这段代码就很好的实现了其功能。
$string = "连接赛迪网http://www.ccidnet.com 站点";
//注意:连接后需要有个空格或回车。
$string = eregi_replace("http://([^ ,rn]*)","<a href= tarrget=_blank></a>",$string);
$string = eregi_replace("ftp://([^ ,rn]*)","<a href= target=_blank></a>",$string);
print $string;
?>
3、用PHP处理多个同名复选框
如果一个表单中有多个同名复选框,在提交到php时却只有一个值,而并不像asp那样是一串用逗号分割的值。解决的方法是利用数组。将复选框的name后面加上[],例如:<input type="checkbox" name="pp" value="1"> 改为:<input type="checkbox" name="pp[]" value="1">。这样php将得到一个叫pp的阵列。在提交的表单中先用Count(pp)来判断数组的个数即选中的个数,然后对数组进行分别处理就行了。
同样的道理也适应于处理下拉框的多选问题。
4、利用static实现表格的颜色隔行显示
我们用PHP从数据库查询数据,并将结果输出到浏览器上,如果结果有很多行,表格的bgcolor(背景色)如果全是单色的,浏览者会感觉不太舒服。那么怎样做使表格各行的颜色不同呢?请看下面代码:
function getcolor()
{
static $colorvalue;//定义一个静态变量
if($colorvalue=="#eeeeee")
$colorvalue="#F5F5F5";
else $colorvalue="#eeeeee";
return($colorvalue);
}
print("<table border=1>n");//下面输出10行
for($i=0;$i<10;$i++)
{
$bcolor=getcolor();//换背景颜色
print("<tr bgcolor=$bcolor>n");
print("<td>$i</td>n");
print("</tr>");
}
print("</table>n");
?>
说明:
此程序中定义了一个静态变量static $colorvalue意思是在函数调用结束后,此变量$colorvalue还保留值,没有消失。当再次调用getcolor()函数时,变量$colorvalue的值是上次函数调用结束时$colorvalue的值。
5、在php中避免重复引用的办法
大家知道,在C语言中,我们可以用#define来定义一个MACRO名字,通过检查是否该MACRO名字定义过来决定该头文件是否被引用。在PHP中也有同样的问题,比如:A引用B,C, B引用C,如果不采取措施,C将被引用2次。这样可能会导致一些奇怪的问题。解决办法:定义一个全局变量,并且通过检查该变量是否定义过来解决这个问题. 办法很简单,类似C。 <?php
    /*
 **数据库连接
 */
   $connect = new PDO ("mysql:host=localhost;dbname=online","root","960515");
?> 

<

这几天整理一份很乱的代码,这才意识到php对include处理不是一般的贱:别的编程语言在处理include中的相对目录时,都是以当前处理的文件作为基准。也就是说,如果A包含B,B包含C时,C再包含一个含相对路径的文件,那么路径是相对于C的。这样的处理很自然,符合人们的直觉,也便于开发出路径无关的程序包。

可是PHP不这样,它优先相对工作目录来处理,并且如果路径中包含. ..的话,则只相对于工作目录。
也许PHP这样处理有它的理由,有谁知道的不妨告诉我。

下面是解决这一问题的几种方式:

  • __FILE__

__FILE__ always equals to the real path of a php script regardless whether it''s included.

 

 

__FILE__ helps you specify the file to include using relative path to the including file.
这种方法首选推荐。虽然你的include语句会因此要写得长一些,但是一个字,值!

<?php 本文来自:http://www.87717.com

include dirname(__FILE__).''/subdir'';

 

//dirname return value does not contain the trailing slash


 

?>


 

 

  • $_SERVER[''DOCUMENT_ROOT'']

This method allows you to specify a path relative to the web server doc_root for file inclusion.
这也是许多项目在采用的一种不错的方式,就我看来,缺点是,整个项目不方便移动。

例如你一开始放置在xxx.com/,后来需要放到xxx.com/abc/下的话,你要改文件(在一个公有文件中计算ROOT的位置,其他文件包含这个共有文件)。
特别是当你同一份代码放多处时(例如一个测试环境和一个正式环境),你改文件也不好改。

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • 查找php配置文件php.ini所在路径的二种方法

    通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31
  • PHP判断上传文件类型的解决办法

    分享给大家php判断上传文件类型的方法,大家一起学习学习。/** * 读取文件前几个字节 判断文件类型 * @return String */ function checkTitle($filename){ $file=fopen($filename, "rb"); $bin=fread($file, 2); /...2015-10-21