php fputs()(fwrite别名)函数使用方法和实例介绍
在PHP中,可以使用fwrite()和fputs()函数向文件中写入数据。fputs()函数是fwrite()函数的别名,它们的用法相同。fputs()函数接受一个文件源和一个字符串,然后把字符串写入到文件中。fwrite()函数也以相同的方式工作:
int fwrite ( resource handle, string string [ , int length ] ) ;
int fputs( resource handle, string string [ , int length ] ) ;
说明:把string的内容写入到文件指针handle中。如果指定了写入的长度length,当写入了length个字节,或者在string的长度小于length的情况下写完了string时,则停止写入。函数的返回值为写入的字节数,出现错误时,返回false。
写入到文件相当简单。下面代码使用fwrite()写入到文件。然后,我们使用fputs()把另一个字符串添加到同一个文件。
<?php
$filename = "test.txt";
echo "<p>Writing to ".$filename." ... </p>";
$fp = fopen($filename, "w") or die("Couldn't open $filename");
fwrite($fp, "Hello world\n");
fclose($fp);
echo "<p>Appending to ".$filename." ...</p>";
$fp = fopen($filename, "a") or die("Couldn't open $filename");
fputs($fp, "And another thing\n");
fclose($fp);
?>
当我们从Web浏览器运行这个脚本,屏幕的输出是:
Writing to test.txt ...
Appending to test.txt ...
如果打开test.txt文件或者使用readlines.php来读取其内容,你将会发现文件现在包含:
Hello world
And another thing
php fputs换行写入的问题
我们在使用fwrite写入文件时,新手会遇到一个最常见但又必须解决的问题,那就是换行写入。
在文件中中通过字符序列\n表示换行符,表示文件中一行的末尾。当需要一次输入或输出一行信息时,请记住这一点。不同的操作系统具有不同的结束符号,基于UNIX的系统使用“\n”作为行结束字符,基于Windows系统使用“\r\n”作为行结束字符,基于Macintosh的系统使用“\r”作为行结束字符。当要写入一个文本文件并想插入一个新行时,需要使用相应操作系统的行结束符号。
php的换行符我们都知道:\n ,回车符:\r,在需要换行时,通常是用“\r\n”这个组合。但是为什么我们在使用fwrite写入文件时\n换行符不起作用呢。我们先看下面这个例子:
<?php
$filename = 'file.txt';
$word = '你好!\r\n欢迎来到www.manongjc.com';
$fh = fopen($filename, "a"); //w从开头写入 a追加写入
echo fwrite($fh, $word);
fclose($fh);
?>
$word的字符串内加上了回车换行符“\r\n”,但是输出结果并不是预期,这个回车换行符“\r\n”并没有被解析为换行符,而是直接被当作一个字符输出来了。
为什么会出现这样的情况呢?经研究,原来是单双引号惹的祸!我们把$word定义字符串的单引号“'”换为双引号“"”就可以了。正确的写法如下:
<?php
$filename = 'file.txt';
$word = "你好!\r\n欢迎来到www.manongjc.com";
$fh = fopen($filename, "a"); //w从开头写入 a追加写入
echo fwrite($fh, $word);
fclose($fh);
?>
- AI—未来医疗
- 微信小程序新功能上线 一键连Wi-Fi手机变门禁卡
- 使用xUnit为.net core程序进行单元测试(中)
- Asp.Net 用Jquery和一般处理程序实现无刷新上传大文件
- WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用
- WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)
- WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)
- WCF技术剖析(卷1)之前言
- WCF技术剖析(卷1)之目录
- WCF技术剖析(卷1)之推荐序
- 谈谈基于SQL Server 的Exception Handling[上篇]
- 谈谈WCF中的Data Contract(4):WCF Data Contract Versioning
- 如何在silverlihgt中使用右键
- WCF技术剖析之十二:数据契约(Data Contract)和数据契约序列化器(DataContractSerializer)
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC