簡體   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