繁体   English   中英

编辑数组并将文件另存为新的 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';
?>

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

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

        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM