博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中使用file_put_contents()函数写入文本
阅读量:5906 次
发布时间:2019-06-19

本文共 1890 字,大约阅读时间需要 6 分钟。

hot3.png

意:我运行的环境是IIS6+PHP5.2

如果有非ASCII字符保存的格式就为UTF-8无BOM,全是ASCII字符的话就为ANSI,不需要手动设置(函数也没有给出手动设置的参数)。

测试程序:

$a = array( "id"=>12, "name"=>"康yong利", "hobby"=>array("a","2","3") );

file_put_contents(dirname(FILE).'/api.txt',json_encode($a));//ANSI格式

file_put_contents(dirname(FILE).'/api1.txt',json_encode($a).'asdf十六大附加..sdf');//UTF-8格式

有意思的附加的测试:

到此应该算是结束了,但我想让全是ASCII字符也保存为UTF-8的,但设置不了,你只有通过记事本另存为UTF-8,但这样会引入BOM,当去除掉BOM再保存(去掉BOM的软件有很多,我用的是Notepad++),你会发现文件有变成ANSI的了。

DW4中也存在同样的现象:

建立一个js文件,随便写几个英文字符,保存,你发现文件时ANSI的;当你再写上几个中文字符,保存,文件就变成UTF-8无BOM格式的了。

总结:

把ANSI(带中文字符)转换成UTF-8无BOM文件其实很简单,个人感觉没别人说得那么复杂,只需两行,请看(Windows平台):

$s = iconv('GB2312','UTF-8',file_get_contents(dirname(FILE).'/api.txt')); file_put_contents(dirname(FILE).'/api.txt', $s);

这些都是表象,关键还是对字符编码、以及各个平台下的编码处理方式不了解,小菜菜!

PHP 内置函数 file_put_contents用于写入文件。 file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下: file_put_contents(filepath,data) 如果文件不存在,file_put_contents函数会自动创建文件;如果文件已存在,原有文件被重写。 你可以利用 file_put_contents函数创建并写入一个新文件,或者重写一个原有文件。 下面是一个使用 file_put_contents函数的 PHP 代码示例:

<html> <body> <?php $path ="C:\\blabla\\filesys\\one.txt"; $content = "one for all"; file_put_contents($path,$content);if (file_exists($path)) {echo "ok";} else {echo "ng";} ?> </body> </html> 该 PHP 代码示例会创建一个路径为 C:\blabla\filesys\one.txt的文件,该文件的内容是 one for all 如果你想在一个已有文件上追加内容,你也可以使用file_put_contents函数,只需要加一个参数即可。 file_put_contents(filepath,data,flags) 当 flags 的值为 FILE_APPEND时,表示在已有文件上追加内容。 比如我们要在上面示例的C:\blabla\filesys\one.txt文件上追加内容,我们可以这样写: <html> <body> <?php $path ="C:\\blabla\\filesys\\one.txt"; $content = " all for one"; file_put_contents($path,$content,FILE_APPEND);if (file_exists($path)) {echo "ok";} else {echo "ng";} ?> </body> </html> 执行该 PHP 文件之后,我们再看 C:\blabla\filesys\one.txt文件,发现文件内容增加了,变成了: one for all all for one file_put_contents函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。

转载于:https://my.oschina.net/u/137226/blog/134237

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
了解11g OCM
查看>>
Robot Framework --rerunfailed 的使用
查看>>
python入门书籍
查看>>
Apache之工作模型
查看>>
安装ESXI5.1
查看>>
RabbitMQ 安装环境 踩过的坑
查看>>
Linux 释放缓存区内存的方法
查看>>
Codis集群的搭建与使用
查看>>
CSSOM View Module 中的尺寸与位置属性
查看>>
Linux中软、硬链接那些事儿
查看>>
Android 深入浅出
查看>>
Android开发:IBinder对象在进程间传递的形式
查看>>
App丛林法则:如何抓住“女人心”
查看>>
springMVC对静态资源访问的处理
查看>>
2015程序员值得收藏的十大主流android button模式
查看>>
centos 6.8 安装LNMP环境(linux+nginx+mysql+php)
查看>>
mysql show processlist命令 详解
查看>>
编译mysql时,到一半的时候报错,c++死掉
查看>>