PHP str_replace 删除文件内容

PHP str_replace deletes file content

我正在制作一个简单的设置表单,要求您输入存储在另一个 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);

谢谢, 尼美图.

您通过调用阅读了文件

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

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

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