【问题标题】:PHP str_replace deletes file contentPHP str_replace 删除文件内容
【发布时间】:2021-06-27 15:44:22
【问题描述】:

我正在制作一个简单的设置表单,要求您输入存储在另一个 PHP 文件中的数据库凭据,但是当用户提交它时,数据库凭据文件中的内容将被删除,并且该文件只是空的。我已经尝试调试我的代码,但仍然无法找出导致问题的原因。

我的数据库凭据文件:

<?php
define("DATABASE_HOST", "{DB_HOST}");
define("DATABASE_USER", "{DB_USER}");
define("DATABASE_PASSWORD", "{DB_PASSWORD}");
define("DATABASE_DATABASE", "{DB_NAME}");

我的代码:

    $databasehost = $_POST['databasehost'];
    $databaseuser = $_POST['databaseuser'];
    $databasepassword = $_POST['databasepassword'];
    $databasename = $_POST['databasename'];
    $searchF  = array('{DB_HOST}','{DB_USER}','{DB_PASSWORD}','{DB_NAME}');
    $replaceW = array($databasehost,  $databaseuser,     $databasepassword,     $databasename);

    $fh = fopen("../static/database.php", 'w');
    $file = file_get_contents('../static/database.php');
    $file = str_replace($searchF, $replaceW, $file);
    fwrite($fh, $file);
    fclose($fh, $file);

谢谢, 尼米图。

【问题讨论】:

    标签: php file str-replace


    【解决方案1】:

    你通过调用读取了文件

    $file = file_get_contents('../static/database.php');
    

    使用w 打开文件后。打开它进行写入将自动清空文件。所以把顺序改成

    $file = file_get_contents('../static/database.php');
    $fh = fopen("../static/database.php", 'w');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-09
      • 2012-06-20
      • 1970-01-01
      • 2010-11-07
      • 2011-01-13
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      相关资源
      最近更新 更多