fWrite会覆盖整个文件吗?

时间:2014-04-28 08:40:41

标签: php

我再次,这次有一个PHP问题...我正忙着制作某种管理面板(真的很基本)但是当我试图改变我的滑块或其他东西时,fwrite会覆盖一切。这是我的PHP代码:

 <?php 
          $errorsslider = array();
          if($_POST['slider']){
              $slider_site = $_POST['slider'];
           $f=fopen("../app/includes/configfunctions.php","w");

   $set_slider = 
   "<?php
    DEFINE('slider', " . $_POST['slider'] . ");
     ";
  if (fwrite($f,$set_slider)>0){
   fclose($f);

  }
  $errorsslider[] = "<div class='alert alert-success'><button type='button' class='close' data-dismiss='alert'>x</button>" . $LANG['admin']['global']['SliderSuccess']; "</div>";
        return $errorsslider;
          }
  ?>

所以在我运行之前,这是我的文件:

<?php
DEFINE('slider', false);
DEFINE('login', true);
?>

在我运行它之后,这是我的文件:

<?php
DEFINE('slider', false);
?>

有没有人有解决方案?

P.S。不要介意代码,看起来很难看,我知道......

莉莎

1 个答案:

答案 0 :(得分:5)

fopen()的文档指定w为:

  

<强> 'W'
  仅供写作;将文件指针放在文件的开头,将文件截断为零长度。如果该文件不存在,请尝试创建它。

因此,您的文件每次都被完全替换。如果您想追加到该文件,请使用a而不是fopen($file, 'a'))打开它:

  

<强> 'A'
  仅供写作;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。