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 ...
随机推荐
- windows下mysql备份、还原,使用mysqldump
直接备份 mysqldump -u用户名 -p密码 -h 192.168.1.15 -c --default-character-set=utf8 数据库名>xxx.sql 使用gz ...
- memcached与.NET的融合使用2
memcached与.NET的融合使用(二) memcached部署完成之后,对当前缓存中数据的监控就显得比较迫切,这里看到网上开源的memadmin比较小巧好用,决定用它来查看监控memcached ...
- RikMigrations 或 Migrator.NET 进行自动化的数据库升级
一种版本化的数据库脚本管理机制 现今开发的软件当中,多数系统的数据都是基于数据库存储的,但是由于软件变化的复杂性,相对于维护代码,数据库架构的版本并不是那么好维护. 这里本人针对实际情况,理想化出一种 ...
- c# in deep 之LINQ读取xml(2)
假如有以下xml文件 <?xml version="1.0" encoding="utf-8" ?><Date> <Produc ...
- Python Learing(一):Basic Grammar
装了python2.7,去图书馆借了python入门经典,暂且简单写下学习笔记,以供自己回忆 学习笔记(一)主要是基础语法部分: 1.python中数字以及字符串的使用; 2.输入与输出语句; 3.逻 ...
- C++构造 下一个排列 的函数
今天围观刘汝佳神犇的白书发现了一个好用的函数: next_permutation(); 可以用于可重, 或者不可重集, 寻找下一个排列. 时间复杂度尚不明. //适用于不可重和可重集的排列. # in ...
- c#多选下拉框(ComboBox)
代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawi ...
- tornado\ioloop.py单例
@staticmethod def instance(): """Returns a global `IOLoop` instance. Most application ...
- 实践Scrum
http://blog.vsharing.com/agiledo/ [原创]敏捷开发实践-我们这样实践Scrum-续(81页) 我们团队实践Scrum,有一些做法和教训,希望和大家分享: 公司背景:通 ...
- HTML文档类型
在HMTL5中页面的最顶端代码就是: <!DOCTYPE html> 为何要如此定义.书写呢? 首先引入一个概念:文档类型,英译为:Document type,缩写成:doctype. 文 ...