2017.7.25

1、PHP包含/引用文件

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

include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include或 require 语句的文件中。

PHP include 和 require 语句

通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。

include 和 require 语句是相同的,除了错误处理方面:

  • require 会生成致命错误(E_COMPILE_ERROR)并停止脚本;当文件被应用程序请求时。
  • include 只生成警告(E_WARNING),并且脚本会继续执行;当文件不是必需的,且应用程序在文件未找到时应该继续运行时。

因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。

否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。

包含文件省去了大量的工作。这意味着您可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。

语法:include ‘filename‘; 或 require ‘filename‘;

语法:include_once ‘filename‘; 或 require_once ‘filename‘;//加上once不会重复引用

例子

假设我们有一个名为 "vars.php" 的文件,其中定义了一些变量:

<?php
$color=‘银色的‘;
$car=‘奔驰轿车‘;
?>

然后,如果我们引用这个 "vars.php" 文件,就可以在调用文件中使用这些变量:

<?php
include ‘vars.php‘;//引用路径为相对路径:如果在同一个文件夹下,则可直接引用,如本例
echo "我有一辆" . $color . $car "。";
?>

2、PHP文件处理



fopen() 函数用于在 PHP 中打开文件。注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)。


打开文件

fopen() 函数用于在 PHP 中打开文件。

此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件:

<html>
<body>

<?php
$file=fopen("welcome.txt","r");//文件名,打开模式
?>

</body>
</html>

文件可能通过下列模式来打开:#+,带有加号表示,同时拥有了读写功能

模式 描述
r 只读。在文件的开头开始。
r+ 读/写。在文件的开头开始。
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

实例

如果 fopen() 函数不能打开指定的文件,下面的实例会生成一段消息:

<html>
<body>

<?php
$file=fopen("welcome.txt","r") or die("Unable to open file!");//输出引号中的话后会退出此文件
?></body>
</html>

关闭文件

fclose() 函数用于关闭打开的文件:

<?php
$file = fopen("test.txt","r");

//执行一些代码

fclose($file);
?>

检测文件末尾(EOF)

feof() 函数检测是否已到达文件末尾(EOF)。

在循环遍历未知长度的数据时,feof() 函数很有用。

注释:在 w 、a 和 x 模式下,您无法读取打开的文件!

if (feof($file)) echo "文件结尾";


逐行读取文件

fgets() 函数用于从文件中逐行读取文件。

注释:在调用该函数之后,文件指针会移动到下一行。

实例

下面的实例逐行读取文件,直到文件末尾为止:

<?php
$file = fopen("welcome.txt", "r") or exit("无法打开文件!");
// 读取文件每一行,直到文件结尾
while(!feof($file))//如果没有到达文件末尾,进入循环
{
    echo fgets($file). "<br>";
}
fclose($file);
?>

逐字符读取文件

fgetc() 函数用于从文件中逐字符地读取文件。

注释:在调用该函数之后,文件指针会移动到下一个字符。

实例

下面的实例逐字符地读取文件,直到文件末尾为止:

<?php
$file=fopen("welcome.txt","r") or exit("无法打开文件!");
while (!feof($file))
{
    echo fgetc($file);
}
fclose($file);
?>
时间: 2024-10-13 11:24:25

2017.7.25的相关文章

新手程序员 工作日志 2017.7.25.18:02 关于改bug网页的使用

责人这里看哪个是自己名下的bug  点进去 点bug对应的ID号进入 综合部-赵鑫 2017/7/25 17:40:47 改完bug修改下bug的状态  附加意见那里可以增加自己的意见 可写也可不写  完成后 点击储存变更

Becoming inspired (2) - ASC 2017 March 25

Becoming inspired - part 2 @ Advanced Studio Classroom Vol: 2017 MARCH 25 7.Who was I like as a child? Let your inner child resurface in your thoughts. Look at a childhood photo of yourself. If you're truly to this person, what would you be doing to

2017.11.25【NOIP提高组】模拟赛A组

2017.11.25[NOIP提高组]模拟赛A组 T1 3467. [NOIP2013模拟联考7]最长上升子序列(lis) T2 3468. [NOIP2013模拟联考7]OSU!(osu) T3 3472. [NOIP2013模拟联考8]匹配(match) T1 有转移方程f[i]=max{f[j]}+1,a[j]<a[i] 可以用线段树+离散化维护这个方程,因为涉及以往状态可以用主席树维护 打太丑爆空间了 Code 1 #include<cstdio> 2 #include<c

淘宝-保证金缴纳的类目及对应金额(2017.3.25)

今天在上架商品,突然提示保证金1万,才能上架商品.请补交保证金,吓了宝宝一跳. 宝宝一个月才几十元的收入,交1万,逼死宝宝啊.  仔细查查资料才知道.消保的基础保证金是1000元保证金,特殊才是更高. 保证金缴纳的类目及对应金额 [原文](https://service.taobao.com/support/seller/knowledge-13123494.htm) 亲,以下各类目需要缴纳相应的保证金哦,具体金额可以参考以下的表格 类目 保证金金额 电动车/配件/交通工具>>电动车整车>

noip2008 真题练习 2017.2.25

不是有很多可以说的,记住不能变算边取min Code 1 #include<iostream> 2 #include<fstream> 3 #include<sstream> 4 #include<cstdio> 5 #include<cctype> 6 #include<cstring> 7 #include<cstdlib> 8 #include<cmath> 9 #include<algorithm

2017/07/25 杂题(完全不可做题(划去))选讲

先膜一发主讲人@Antileaf 真是核平的一天那--大脑已经被蹂躏的死去活来了-- cogs2421 简单的Treap 链接:http://cogs.pro/cogs/problem/problem.php?pid=2421 题意:什么都给你了,建出Treap,输出先序遍历顺序. 实际上只是用了Treap的原则建树--先按照数值大小排序,然后按照建立笛卡尔树方法,维护单调栈,最大的全扔到右儿子去即可. 1 #include<iostream> 2 #include<cstdio>

[第五组] 典型用户 +用例+功能说明书+技术说明书 2017.07.25版

典型用户3 姓名 林华 性别,年龄 男,21 收入 暂无 知识 大学 生活 多数在食堂吃,希望看到新品的试吃评论再决定吃不吃 动机 想看到其他人对菜品的评价或者自己吐槽 偏好 喜欢查看评论也喜欢自己评论 比例 ? 场景 在评论界面浏览,留言 场景 工作序号003:发布评论 1. 背景 1) 经典客户:林华 2) 客户的需求/迫切解决的问题  a. 浏览菜品评论. b. 在评论区上发布评论(文字评论). 3)假设: a.    用户已注册登录成为普通用户.  b.    用户拥有在评论区评论的权限

2017/07/25 工作日志

正式工作第一天,无从下手,大概是从申请网络开始的=_=,经理先和我聊了聊方向,然后帮忙下了一个基础系统并讲解了大致的结构以及BugFree的使用流程,接着我就从搭建基本网站开始做起了. 服务器路径和地址等问题轻松理解,问题从IIS开始,当天按部就班地解决了几个简单的问题,遇到的第一个坎是 "试图加载格式不正确的程序" 查找到的问题原因有多个,而且难以理解,还没有着手解决的时候,经理路过一语道破:在64位系统中安装了32位的Oracle,要把IIS应用程序池里的32位兼容打开. 这一问题

【第五组】第十二次冲刺例会纪要 2017/7/25

第十二次冲刺例会纪要 开发小组:Hunger Killer 冲刺经理:衣俊霖 小组成员:张竣杰,董泽昊,赵美,宋寅瑜,徐志国 A:张竣杰 负责部分:管理员界面 昨日所做工作:优化界面,为发布努力 遇到的问题:下拉列表刷新问题 今日计划:尝试解决 B:衣俊霖 负责部分:注册界面 昨日所做工作:与发布经理相伴写注册后端,加提示弹窗,为发布努力 遇到的问题:有些细节没写 今日计划:解决问题,写登录后端 C:董泽昊 负责部分:趣味决策 昨日所做工作:与冲刺经理相伴写注册后端,研究图片传输,写发布说明,为

python日记----2017.7.25

一丶函数 1.函数的定义def是关键字 definedef 之后加函数名 函数名 必须由字母下划线数字组成,不能是关键字,不能是数字开头 函数名还是要有一定的意义能够简单说明函数的功能():必须写函数的调用:函数名+括号2.返回值函数的返回值为None有三种情况1.不写返回值2.只写一个return3.return None (几乎不用)return的作用:结束一个函数的执行首先 返回值可以是任意的数据类型如果有返回值:必须要用变量接收才会有效果函数的返回值不为None,有返回值return x