代码之家  ›  专栏  ›  技术社区  ›  ayush

使用PHP处理文件

  •  0
  • ayush  · 技术社区  · 14 年前

    有人能告诉这个方法用PHP修改/删除文本文件的内容吗?

    3 回复  |  直到 14 年前
        1
  •  2
  •   Metalshark    14 年前

    通过使用 fopen :

    if (is_writable($filename)) {
      if (!$handle = fopen($filename, 'w')) {
         echo "Cannot open file ($filename)";
         exit;
      }
      if (fwrite($handle, $somecontent) === FALSE) {
        echo "Cannot write to file ($filename)";
        exit;
      }
    
      echo "Success, wrote to file ($filename)";
    
      fclose($handle);
    }
    

    将“”写入文件以删除其内容。

    要逐行删除内容,请使用:

    $arr = file($fileName);
    
    unset($arr[3]); // 3 is an arbitrary line
    

    然后写入文件内容。或者您指的是内存映射文件?

        2
  •  3
  •   NikiC    14 年前

    使用 file_put_contents :

    file_put_contents($filename, 'file_content');
    

    如果要附加到文件而不是替换其内容,请使用:

    file_put_contents($filename, 'append_this', FILE_APPEND);
    

    ( file_out_contents 是使用整体的更简单的选择 fopen 复杂的)

        3
  •  1
  •   Developer    14 年前

    读取文件的方法有很多种。大文件可以很快处理使用

    $fd = fopen ("log.txt", "r"); // you can use w/a switches to write append text
    while (!feof ($fd)) 
    { 
       $buffer = fgets($fd, 4096); 
       $lines[] = $buffer; 
    } 
    fclose ($fd); 
    

    您还可以使用file_get_contents()读取文件。实现相同目标的捷径。

    要修改或附加文件,可以使用

    $filePointer = fopen("log.txt", "a");
    fputs($filePointer, "Text HERE TO WRITE");
    fclose($filePointer);
    

    还可以将文件加载到数组中,然后执行搜索操作以删除数组的特定元素。

    $lines = file('FILE WITH COMPLETE PATH.') ;//在路径somthing(如c://path//to//file.txt)中,单斜杠应该是双斜杠。 上面的代码将把文件加载到$lines数组中。