用file_get_contents和file_put_contents读和写文件即可,并不麻烦,
文件修改后本来就是要重写的,所以这样没什么不好.

解决方案 »

  1.   

    file_get_contents和file_put_contents是读写文件,但问题是将文件全部读取到字符串中,匹配修改后再写入的时候并不是覆盖原文件内容,原文件内容还在的。best_inh(一无所) 所说的规律,是不是指通过文件指针进行删除和读写,可是如果指定了指针位置,如何删除指针位置的原内容呢。
      

  2.   

    另外,如果文件内容很大,用file_get_contents读取的时候有没有溢出的可能性呢。
      

  3.   

    to:可是如果指定了指针位置,如何删除指针位置的原内容呢。删除好像没有什么好办法,只能以空白覆盖,如
    fwrite($fp,str_pad("",strlen("字串")));
      

  4.   

    看了上面的,我的理解是:1、读取A文件内容到字符串B,将字符串B写入文件C,删除文件A,将文件C重命名为A。2、如果A文件内容格式有规律,读取A文件中需要修改的字符串B的指针位置,用空格覆盖,然后接着写入新数据。
    不知道我的理解是不是有误,请大家指点。
      

  5.   

    这个,再多说几句,
    即使是使用open方式打开文件操作,它一样是要读取文件到内存的,因为你的php程序不可能去直接读写硬盘的,对于大文件,会用到内存映射,file_get_contents也一样使用了. 对于写文件,文件修改后(即使文件长度没改变)是否写到原来在硬盘上的地址,是决定于操作系统和分区类型等的,也不是php程序需要考虑和能够改变的.