PHP 中如何在同一个文件中写入而不覆盖以前写的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 中如何在同一个文件中写入而不覆盖以前写的内容相关的知识,希望对你有一定的参考价值。

以a方式打开文件可以在文件的末尾写入内容,例如下面的代码在文件的a.txt的末尾添加123:

<?php
    $fp=fopem("a.txt","a");
    fputs($fp,"123");
    fclose($fp);
?>

其它打开方式的说明:

\'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 以及以后的版本所支持,仅能用于本地文件。           

参考技术A <?php
    $fp=fopen("a.txt","a");
    fputs($fp,"123");
    fclose($fp);
?>

在本机反应中写入/编辑/覆盖一个json文件

【中文标题】在本机反应中写入/编辑/覆盖一个json文件【英文标题】:write/edit/overwrite a json file in react native 【发布时间】:2016-10-06 22:19:02 【问题描述】:

我知道如何通过导入来读取 json 文件

import file from './config/data.json'; console.log(file);

但是有没有一种简单的方法来编写或编辑它。

【问题讨论】:

【参考方案1】:

如果你绝对想读/写文件,你可以使用react-native-fs。

如果您想保留应用程序特定的设置,我建议您使用AsyncStorage。

【讨论】:

【参考方案2】:

使用 AsyncStorage 保存本地设置:

以下是在你的代码中设置你的设置(这个例子是针对一些Switch的

async setSettings() 
  try 
    var obj = ;
    var settings = await AsyncStorage.getItem('settings');
    settings = JSON.parse(result);
    Object.assign(obj, settings);
    this.setState(obj);
  
  catch(e)  
  finally  

以下是在你的代码中更改设置

switchChanged(field, value) 
  var obj = ;
  obj[field] = value;
  AsyncStorage.getItem('settings').then(function(strResult) 
    var result = JSON.parse(strResult) || ;
    Object.assign(result, obj);
    AsyncStorage.setItem('settings', JSON.stringify(result));
  );
  this.setState(obj);

最后是渲染方法的调用

<Switch
  onValueChange=(value) => this.switchChanged('reminders', value)
  value=this.state.reminders />

希望对你有帮助:)

【讨论】:

以上是关于PHP 中如何在同一个文件中写入而不覆盖以前写的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中写入文本文件而不覆盖文本?

如何在 Qfile 中写入而不覆盖? [复制]

在 Fortran 中写入现有文件而不覆盖

写入文本文件而不覆盖它

在C语言中,fopen一个文件 如何能够在写入新的数据覆盖原文件中指定长度的内容

将字符串添加到文件而不覆盖以前的字符串