编辑数组并将文件另存为新的 php 文件


Edit the array and save the file as a new php file

有一个名为default.Db.php的文件,它只包含:

<?php 
// OLD FILE
function get_DbConfig(){
    $config = array (
                'source'    =>  'array',                            
                'host'      =>  'DATABASE_HOST',
                'port'      =>  'DATABASE_PORT',
                'username'  =>  'DATABASE_USER',
                'password'  =>  'DATABASE_PASSWORD',
                'database'  =>  'DATABASE_NAME'
            );
    return $config;
}
require_once './../Common/php/face.php';
?>

有什么方法可以用我自己的数组替换get_dbConfig内部$config?例如,每个键都有一个特定值的数组。替换此数组中的值后,我将文件重命名为 Db.php

<?php
// NEW FILE
function get_DbConfig(){
    $config = array (
                'source'    =>  'array',                            
                'host'      =>  'localhost',
                'port'      =>  '3306',
                'username'  =>  'foo',
                'password'  =>  'bar',
                'database'  =>  'foobar'
            );
    return $config;
}
require_once __DIR__.'./../Common/php/OperateDB/DbMgrInterface.php';
?>
我不知道

你为什么要这样做。有更好的方法可以实现这一点。但是,您可以执行以下操作:

try {
            // Read the whole file into memory
            $fileStr = file_get_contents('../default.Db.php');
            // Replace each string with a valid value
            $fileStr = str_replace('DATABASE_HOST', HOST, $fileStr);
            $fileStr = str_replace('DATABASE_USER', USER, $fileStr);
            $fileStr = str_replace('DATABASE_PASSWORD', PASSWORD, $fileStr);
            $fileStr = str_replace('DATABASE_NAME', DB_NAME, $fileStr);
            $fileStr = str_replace('DATABASE_PORT', PORT, $fileStr);
            // Write the modified content
            file_put_contents("../default.Db.php", $fileStr);
            // Rename default.Db.php to Db.php
            $isRenamed = rename('../default.Db.php','../Db.php');
            if($isRenamed) {
                require_once './../Db.php';
            }
        }catch(Exception $exc) {
        }

首先,您必须在函数中传递参数。 之后,当您调用该函数时,您必须在其中传递数组并使用赋值变量分配数组值。

    <?php
    function get_DbConfig($configdata){
            $config = array (
                'source'    =>  $configdata ['array'],                            
                'host'      =>  $configdata['DATABASE_HOST'],
                'port'      =>  $configdata['DATABASE_PORT'],
                'username'  =>  $configdata['DATABASE_USER'],
                'password'  =>  $configdata['DATABASE_PASSWORD'],
                'database'  =>  $configdata['DATABASE_NAME']
            );
    return $config;
}
require_once './../Common/php/face.php';
?>