正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

文章

Home web服务器端开发 PHP创建文件,并向文件中写入数据
Home web服务器端开发 PHP创建文件,并向文件中写入数据

PHP创建文件,并向文件中写入数据

web服务器端开发 by

PHP 创建文件 – fopen()

fopen() 函数也用于创建文件。也许有点混乱,但是在 PHP 中,创建文件所用的函数与打开文件的相同。

如果您用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。

下面的例子创建名为 “testfile.txt” 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:

实例

$myfile = fopen("testfile.txt", "w")

PHP 文件权限

如果您试图运行这段代码时发生错误,请检查您是否有向硬盘写入信息的 PHP 文件访问权限。

PHP 写入文件 – fwrite()

fwrite() 函数用于写入文件。

fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。

下面的例子把姓名写入名为 “newfile.txt” 的新文件中:

实例

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

请注意,我们向文件 “newfile.txt” 写了两次。在每次我们向文件写入时,在我们发送的字符串 $txt 中,第一次包含 “Bill Gates”,第二次包含 “Steve Jobs”。在写入完成后,我们使用 fclose() 函数来关闭文件。

如果我们打开 “newfile.txt” 文件,它应该是这样的:

Bill Gates
Steve Jobs

PHP 覆盖(Overwriting)

如果现在 “newfile.txt” 包含了一些数据,我们可以展示在写入已有文件时发生的的事情。所有已存在的数据会被擦除并以一个新文件开始。

在下面的例子中,我们打开一个已存在的文件 “newfile.txt”,并向其中写入了一些新数据:

实例

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

如果现在我们打开这个 “newfile.txt” 文件,Bill 和 Steve 都已消失,只剩下我们刚写入的数据:

Mickey Mouse
Minnie Mouse


PHP Filesystem 简介

Filesystem 函数允许您访问和操作文件系统。

安装

Filesystem 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

Runtime 配置

文件系统函数的行为受到 php.ini 中设置的影响。

文件系统配置选项:

名称 默认 描述 可改变
allow_url_fopen “1” 本选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问远程文件,一些扩展库例如 zlib 可能会注册更多的封装协议。

(PHP 4.0.4 版以后可用。)

PHP_INI_SYSTEM
user_agent NULL 定义 PHP 发送的 User-Agent。

(PHP 4.3.0 版以后可用。)

PHP_INI_ALL
default_socket_timeout “60” 基于 socket 的流的默认超时时间(秒)。

(PHP 4.3.0 版以后可用。)

PHP_INI_ALL
from “” 定义匿名 ftp 的密码(您的 email 地址)。 PHP_INI_ALL
auto_detect_line_endings “0” 当设为 On 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。

这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。

(PHP 4.3.0 版以后可用。)

PHP_INI_ALL

Unix / Windows 兼容性

当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符。而在 Windows 平台上,正斜杠 (/) 和反斜杠 (\) 均可使用。

PHP Filesystem 函数

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
basename() 返回路径中的文件名部分。 3
chgrp() 改变文件组。 3
chmod() 改变文件模式。 3
chown() 改变文件所有者。 3
clearstatcache() 清除文件状态缓存。 3
copy() 复制文件。 3
delete() 参见 unlink() 或 unset()。
dirname() 返回路径中的目录名称部分。 3
disk_free_space() 返回目录的可用空间。 4
disk_total_space() 返回一个目录的磁盘总容量。 4
diskfreespace() disk_free_space() 的别名。 3
fclose() 关闭打开的文件。 3
feof() 测试文件指针是否到了文件结束的位置。 3
fflush() 向打开的文件输出缓冲内容。 4
fgetc() 从打开的文件中返回字符。 3
fgetcsv() 从打开的文件中解析一行,校验 CSV 字段。 3
fgets() 从打开的文件中返回一行。 3
fgetss() 从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。 3
file() 把文件读入一个数组中。 3
file_exists() 检查文件或目录是否存在。 3
file_get_contents() 将文件读入字符串。 4
file_put_contents() 将字符串写入文件。 5
fileatime() 返回文件的上次访问时间。 3
filectime() 返回文件的上次改变时间。 3
filegroup() 返回文件的组 ID。 3
fileinode() 返回文件的 inode 编号。 3
filemtime() 返回文件的上次修改时间。 3
fileowner() 文件的 user ID (所有者)。 3
fileperms() 返回文件的权限。 3
filesize() 返回文件大小。 3
filetype() 返回文件类型。 3
flock() 锁定或释放文件。 3
fnmatch() 根据指定的模式来匹配文件名或字符串。 4
fopen() 打开一个文件或 URL。 3
fpassthru() 从打开的文件中读数据,直到 EOF,并向输出缓冲写结果。 3
fputcsv() 将行格式化为 CSV 并写入一个打开的文件中。 5
fputs() fwrite() 的别名。 3
fread() 读取打开的文件。 3
fscanf() 根据指定的格式对输入进行解析。 4
fseek() 在打开的文件中定位。 3
fstat() 返回关于一个打开的文件的信息。 4
ftell() 返回文件指针的读/写位置 3
ftruncate() 将文件截断到指定的长度。 4
fwrite() 写入文件。 3
glob() 返回一个包含匹配指定模式的文件名/目录的数组。 4
is_dir() 判断指定的文件名是否是一个目录。 3
is_executable() 判断文件是否可执行。 3
is_file() 判断指定文件是否为常规的文件。 3
is_link() 判断指定的文件是否是连接。 3
is_readable() 判断文件是否可读。 3
is_uploaded_file() 判断文件是否是通过 HTTP POST 上传的。 3
is_writable() 判断文件是否可写。 4
is_writeable() is_writable() 的别名。 3
link() 创建一个硬连接。 3
linkinfo() 返回有关一个硬连接的信息。 3
lstat() 返回关于文件或符号连接的信息。 3
mkdir() 创建目录。 3
move_uploaded_file() 将上传的文件移动到新位置。 4
parse_ini_file() 解析一个配置文件。 4
pathinfo() 返回关于文件路径的信息。 4
pclose() 关闭有 popen() 打开的进程。 3
popen() 打开一个进程。 3
readfile() 读取一个文件,并输出到输出缓冲。 3
readlink() 返回符号连接的目标。 3
realpath() 返回绝对路径名。 4
rename() 重名名文件或目录。 3
rewind() 倒回文件指针的位置。 3
rmdir() 删除空的目录。 3
set_file_buffer() 设置已打开文件的缓冲大小。 3
stat() 返回关于文件的信息。 3
symlink() 创建符号连接。 3
tempnam() 创建唯一的临时文件。 3
tmpfile() 建立临时文件。 3
touch() 设置文件的访问和修改时间。 3
umask() 改变文件的文件权限。 3
unlink() 删除文件。 3

PHP Filesystem 常量

PHP:指示支持该常量的最早的 PHP 版本。

常量 描述 PHP
GLOB_BRACE
GLOB_ONLYDIR
GLOB_MARK
GLOB_NOSORT
GLOB_NOCHECK
GLOB_NOESCAPE
PATHINFO_DIRNAME
PATHINFO_BASENAME
PATHINFO_EXTENSION
FILE_USE_INCLUDE_PATH
FILE_APPEND
FILE_IGNORE_NEW_LINES
FILE_SKIP_EMPTY_LINES

PHP Filter 简介

PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。

安装

filter 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

PHP Filter 函数

PHP:指示支持该函数的最早的 PHP 版本。

函数 描述 PHP
filter_has_var() 检查是否存在指定输入类型的变量。 5
filter_id() 返回指定过滤器的 ID 号。 5
filter_input() 从脚本外部获取输入,并进行过滤。 5
filter_input_array() 从脚本外部获取多项输入,并进行过滤。 5
filter_list() 返回包含所有得到支持的过滤器的一个数组。 5
filter_var_array() 获取多项变量,并进行过滤。 5
filter_var() 获取一个变量,并进行过滤。 5

PHP Filters

ID 名称 描述
FILTER_CALLBACK 调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING 去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED “string” 过滤器的别名。
FILTER_SANITIZE_ENCODED URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS HTML 转义字符 ‘”<>& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL 删除所有字符,除了字母、数字以及 !#$%&’*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_URL 删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\\^~[]`<>#%”;/?:@&=
FILTER_SANITIZE_NUMBER_INT 删除所有字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT 删除所有字符,除了数字、+- 以及 .,eE。
FILTER_SANITIZE_MAGIC_QUOTES 应用 addslashes()。
FILTER_UNSAFE_RAW 不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT 在指定的范围以整数验证值。
FILTER_VALIDATE_BOOLEAN 如果是 “1”, “true”, “on” 以及 “yes”,则返回 true,如果是 “0”, “false”, “off”, “no” 以及 “”,则返回 false。否则返回 NULL。
FILTER_VALIDATE_FLOAT 以浮点数验证值。
FILTER_VALIDATE_REGEXP 根据 regexp,兼容 Perl 的正则表达式来验证值。
FILTER_VALIDATE_URL 把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL 把值作为 e-mail 来验证。
FILTER_VALIDATE_IP 把值作为 IP 地址来验证。

创建文件我们用到函数

fopen ( string filename, string mode )

参数filename为创建文件名
参数mode为以什么方式打开文件filename

其中mode可能值列表:

mode 说明

‘r’ 只读方式打开,将文件指针指向文件头。

‘r+’ 读写方式打开,将文件指针指向文件头。

‘w’ 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

‘w+’ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

‘a’ 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

‘a+’ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

‘x’ 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

‘x+’ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

下面代码是我通过利用函数fopen创建一个名为Demo,格式为txt的文件,并在文件中写入“Welcome To ItCodeWorld!”的数据。

  1. < ?php 
  2.  
  3. //要创建的两个文件
  4.  
  5. $TxtFileName    = “Demo.txt”;
  6.  
  7. //以读写方式打写指定文件,如果文件不存则创建
  8.  
  9. if( ($TxtRes=fopen ($TxtFileName,”w+”)) === FALSE){
  10.  
  11.     echo(“创建可写文件:”.$TxtFileName.”失败”);   
  12.  
  13.     exit();
  14.  
  15. }
  16.  
  17. echo (“创建可写文件”.$TxtFileName.”成功!</br>”);
  18.  
  19.     $StrConents = “Welcome To ItCodeWorld!”;//要 写进文件的内容
  20.  
  21. if(!fwrite ($TxtRes,$StrConents)){ //将信息写入文件
  22.         echo (“尝试向文件”.$TxtFileName.”写入”.$StrConents.”失败!”);
  23.         fclose($TxtRes);
  24.         exit();       
  25.  
  26. echo (“尝试向文件”.$TxtFileName.”写入”.$StrConents.”成功!”);
  27.  
  28. fclose ($TxtRes); //关闭指针
  29. ?>



 

23 2015-04

 

我要 分享

 

 

本文 作者

 

相关 文章