Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编辑数组并将文件另存为新的php文件_Php_Arrays_File - Fatal编程技术网

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

编辑数组并将文件另存为新的php文件,php,arrays,file,Php,Arrays,File,有一个名为default.Db.php的文件,其中包含: <?php // OLD FILE function get_DbConfig(){ $config = array ( 'source' => 'array', 'host' => 'DATABASE_HOST', 'port'

有一个名为
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';
?>

首先,必须在函数中传递参数。之后,当调用该函数时,此时必须将数组传递给该函数,并使用assign变量指定数组值

    <?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';
?>

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

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) {

        }

为什么要这样做?@DebosmitRay,这样我就可以用我在运行时得到的值填充这个数组。通常的方法是将变量添加为函数参数您可以使用数组\替换函数您想动态更改数组值吗?然后将值传递给该索引号,这意味着每次使用配置调用该函数。我想编辑/修改default.Db.php文件,这样当我调用
get_DbConfig
时,它只会返回我前面设置的值OK,所以你想更改数组并将文件保存为php file?@daremachine。这是一次性过程,还是每次你想为该配置创建新文件?您只想更改“数组”值,即哪个键是source?@viralPathak一次。
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) {

        }