编辑数组并将文件另存为新的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) {
}