php学习笔记——文件(1)
一、include和require
服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。
include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。
include 和 require 语句是相同的,除了错误处理方面:
- require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
- include 只生成警告(E_WARNING),并且脚本会继续
用法:
include 'filename';
require 'filename';
include和require的区别:
如果用 include 语句引用某个文件并且 PHP 无法找到它,脚本会继续执行,反正没找到就没找到。当文件不是必需的,且应用程序在文件未找到时应该继续运行时用。
如果用require,引用的文件找不到,页面会报错。当文件被应用程序请求时用。
二、readfile() 函数
读取文件,并把它写入输出缓冲。读取成功返回字节数(bytes),读取失败返回false。
int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )
filename
要读取的文件名。
use_include_path
想要在include_path中搜索文件,可使用这个可选的第二个参数,设为 TRUE。
context
Stream 上下文(context) resource。
readfile("test");//读取文件
更多例子见:http://php.net/manual/en/function.readfile.php
三、fopen()函数
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
filename:
如果 filename是 "scheme://..." 的格式,则被当成一个URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去。
如果 PHP 认为filename指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者 open_basedir则会应用进一步的限制。
如果 PHP 认为filename指定的是一个已注册的协议,而该协议被注册为一个网络URL,PHP 将检查并确认allow_url_fopen已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
mode:

user_include_path
如果也需要在 include_path中搜寻文件的话,可以将可选的第三个参数use_include_path设为 '1' 或 TRUE。
返回值:
成功时返回文件指针资源,如果打开失败,本函数返回 FALSE
四、fread()
string fread ( resource $handle , int $length )
fread() 函数读取打开的文件。
fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。
如下 PHP 代码把 "webdictionary.txt" 文件读至结尾:
fread($myfile,filesize("webdictionary.txt"));
五、 fclose()
bool fclose ( resource $handle )
fclose() 函数用于关闭打开的文件。
注释:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。
fclose() 需要待关闭文件的名称(或者存有文件名的变量):
<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>
六、fgets()
string fgets ( resource $handle [, int $length ] )
fgets() 函数用于从文件读取单行。
$handle
必须是fopen,fsockopen没有fclose的文件
$length
从 handle指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
返回值
从指针 handle 指向的文件中读取了 length - 1 字节后返回字符串。 如果文件指针中没有更多的数据了则返回 FALSE。错误发生时返回 FALSE
注释:调用 fgets() 函数之后,文件指针会移动到下一行。
下例输出 "webdictionary.txt" 文件的首行:
实例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>
七、fgetc()
string fgetc ( resource $handle)
fgetc() 函数用于从文件中读取单个字符。
$handle
必须是fopen,fsockopen没有fclose的文件
返回值
返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。 碰到 EOF 则返回 FALSE。
此函数可能返回布尔值FALSE,但也可能返回等同于 FALSE 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用===运算符来测试此函数的返回值。
注释:在调用 fgetc() 函数之后,文件指针会移动到下一个字符。
下例逐字符读取 "webdictionary.txt" 文件,直到 end-of-file:
实例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单字符直到 end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>
八、feof()
bool feof ( resource $handle )
feof() 函数检查是否已到达 "end-of-file" (EOF)。
feof() 对于遍历未知长度的数据很有用。
下例逐行读取 "webdictionary.txt" 文件,直到 end-of-file:
实例
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单行直到 end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
php学习笔记——文件(1)的更多相关文章
- 《python基础教程(第二版)》学习笔记 文件和素材(第11章)
<python基础教程(第二版)>学习笔记 文件和素材(第11章) 打开文件:open(filename[,mode[,buffering]]) mode是读写文件的模式f=open(r' ...
- [Python学习笔记]文件的读取写入
文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...
- .net学习笔记--文件读写的几种方式
在.net中有很多有用的类库来读写硬盘上的文件 一般比较常用的有: File:1.什么时候使用:当读写件大小不大,同时可以一次性进行读写操作的时候使用 2.不同的方式可以读写文件类型不 ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- Python学习笔记——文件
1.文件只是连续的字节序列 open()内建函数是打开文件之门的钥匙 file_obj=open(file_name,access_mode='r/w/a,' buffering=-1) file_n ...
- Spring MVC学习笔记——文件上传
1.实现文件上传首先需要导入Apache的包,commons-fileupload-1.2.2.jar和commons-io-2.1.jar 实现上传就在add.jsp文件中修改表单 enctype= ...
- python 2.7 学习笔记--文件的基本操作
1.打开文件的方式 file_obj = file("文件路径","模式") file_obj = open("文件路径","模式 ...
- linux学习笔记--文件
文件系统 ls -lhi i inode 相当于文件在磁盘里的唯一标示,index node h 代表文件大小k,m [root@masters ~]# [root@masters ~]# ls -l ...
- erlang学习笔记(文件操作)
参考这里和这里了解到的文件操作的模块有很多:kernel下有:file,stdlib下有:filelib,filename,file_sorter.(具体查看官方文档)
- Python学习笔记——文件写入和读取
1.文件写入 #coding:utf-8 #!/usr/bin/env python 'makeTextPyhton.py -- create text file' import os ls = os ...
随机推荐
- helloWord
helloWord!!! 在cnblogs安家了
- SpringMVC实现注解式权限验证
SpringMVC学习系列(9) 之 实现注解式权限验证 对大部分系统来说都需要权限管理来决定不同用户可以看到哪些内容,那么如何在Spring MVC中实现权限验证呢?当然我们可以继续使用servle ...
- JAVA实例化class的三种方式
不多说 直接上例子 package org.lxh.demo15.getclassdemo ; class X{ }; public class GetClassDemo02{ public sta ...
- nant build
http://stackoverflow.com/questions/700871/publish-webapplication-using-nant <target name="co ...
- Printk 标志优先级别
#define KERN_EMERG "<0>" /* 致命级:紧急事件消息,系统崩溃之前提示,表示系统不可用 */# ...
- 类图class的依赖关系
类图class的依赖关系 相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) ...
- SQL Server的数据加密简介
防止开发人员获取到敏感数据(SQL Server的数据加密简介) 背景 有时候,我们还真的会碰到这样的需求:防止开发人员获取到敏感数据.也许你觉得很简单,把开发和运营分开不就可以了吗?是的,如果公司有 ...
- UIKit类结构图
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- wp加载本地HTML(附带图片,CSS,JS)
wp加载本地HTML(附带图片,CSS,JS) Windows Phone:Load Local HTML with Img,Css,Js by 唐小崇 http://www.cnblogs.com/ ...