PHP中file_put_contents追加和换行「建议收藏」

PHP中file_put_contents追加和换行

大家好,又见面了,我是全栈君。

PHP的一些应用中需要写日志或者记录一些信息,这样的话。

可以使用fopen(),fwrite()以及 fclose()这些进行操作。

也可以简单的使用file_get_contents()file_put_contents().

file_put_contents()写文件。默认的是重新写文件,也就是会 替换原先的内容。追加的话使用参数FILE_APPEND

 

以追加形式写入内容 当设置 flags 参数值为 

FILE_APPEND 时,

表示在已有文件内容后面追加内容的方式写入新数据

 

//log
$tmpArr = array();
if($r->isGet){
    $tmpArr = $r->get();
}else if($r->isPost){
    $tmpArr = $r->post();
}
$jsonStr = json_encode($tmpArr);
$payLogFile = './uploads/payLogs.txt';
$newLog ='log_time:'.date('Y-m-d H:i:s').$jsonStr;
file_put_contents($payLogFile, $newLog.PHP_EOL, FILE_APPEND);

 

 

很多时候记录日志需要换行。不建议使用\r\n,因为:
在windows中\r\n是换行
在Mac中\r是换行
在Liunx中\n是换行

但是PHP提供了一个常量来匹配不同的操作系统,即:

 

PHP_EOL

 

file_put_contents("log.txt""Hello world everyone.".PHP_EOL, FILE_APPEND);
 

file_put_contents($payLogFile, $newLog.PHP_EOL, FILE_APPEND);

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112065.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一文读懂C++虚函数的内存模型[通俗易懂]

    一文读懂C++虚函数的内存模型[通俗易懂]一文彻底读懂C++虚函数表的实现机制(使用GDB内存布局)1、虚函数简介2、虚函数表简介3、有继承关系的虚函数表剖析3.1、单继承无虚函数覆盖的情况3.2、单继承有虚函数覆盖的情况3.3、多重继承的情况3.4、多层继承的情况4、总结1、虚函数简介C++中有两种方式实现多态,即重载和覆盖。重载:是指允许存在多个同名函数,而这些函数的参数表不同(参数个数不同、参数类型不同或者两者都不同)。覆盖:是指子类重新定义父类的虚函数的做法,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际

    2022年7月26日
    3
  • java8以后字符串常量池的位置,以及元空间的探秘,使用VisualVM进行实战验证

    java8以后字符串常量池的位置,以及元空间的探秘,使用VisualVM进行实战验证  在网上看了很多博客,解释也比较多,关于字符串常量池的具体位置难以分辨谁真谁假。  对于jdk8以后的版本有人说字符串常量池在元空间中,也有人说字符串常量池存在堆中。  到底谁说的对?他们的说法有依据吗?  今天让我们来一起探讨一下这个问题有人说字符串常量池在java堆中,可又有人说常量池存在元空间中。分享几篇知乎文章关于jvm运行时数据区的模型:1、面试官|JVM为什么使用元空间替换了永久代?2、Java方法区与元空间为了解决这个问题,下面我们通过Idea、VisualVm

    2022年7月28日
    16
  • 小程序 轮播图样式设置

    小程序 轮播图样式设置swiper标签存在默认的宽度和高度100%*150pximage标签也存在默认的高度和宽度320px*240px设计图片和轮播图先看一下原图的尺寸数据假设750*340让图片的高度自适应宽度为100%让swiper标签的高度与图片的告诉一样高swiper高度/swiper宽度=图片高度/图片宽度swiper高度=图片高度*swiper宽度/图片宽度swiper高度=340*100vw/750100vw为视口宽度图片的.

    2022年5月21日
    72
  • 通过subString()方法来进行字符串截取

    通过subString()方法来进行字符串截取1.通过subString()方法来进行字符串截取。subString通过不同的参数来提供不同的截取方式1.1只传一个参数例如:Stringsb="bbbdsajjds";sb.substring(2);12将字符串从索引号为2开始截取,一直到字符串末尾。(索引值从0开始);1.2传入2个索引值Stringsb="bbbdsajjds";sb.substri…

    2022年5月24日
    39
  • 【2022最新Java面试宝典】—— Java基础知识面试题(91道含答案)

    【2022最新Java面试宝典】—— Java基础知识面试题(91道含答案)目录一、Java概述1.何为编程2.什么是Java3.jdk1.5之后的三大版本4.Jdk和Jre和JVM的区别5.什么是跨平台性?原理是什么6.Java语言有哪些特点7.什么是字节码?采用字节码的最大好处是什么8.什么是Java程序的主类?应用程序和小程序的主类有何不同?9.Java应用程序与小程序之间有那些差别?10.Java和C++的区别11.OracleJDK和OpenJDK的对比二、基础语法数据类型12.Java有哪些数据类型13.switch是否能作用在by

    2022年9月20日
    0
  • IDEA–IDEA debug断点调试技巧

    目录一、Debug开篇二、基本用法&快捷键三、变量查看四、计算表达式五、智能步入六、断点条件设置七、多线程调试八、回退断点九、中断DebugDebug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。…

    2022年4月5日
    690

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号