2010-04-05 74 views
3

所以我有一个文件的常量。我想让用户定义它们,然后与全局常量编辑我.PHP filr(不是XML - 真正的PHP文件)一个.PHP文件可以编辑另一个吗?

有了这样的代码,例如

<?php 
// Database Constants 
define("DB_SERVER", "localhost"); 
define("DB_USER", "root"); 
define("DB_PASS", "000000"); 
define("DB_NAME", "cms"); 
?> 

如何编辑从这个PHP文件另一个PHP文件?可能吗?

在未来的Btw我不仅要实现常量重新定义,而且要能够修改自己的一些智能代码。

如果有人可以,请给我一个函数在我的文件来改变单词“localhost”的...

+0

如果这是一个配置文件,请参阅此相关的问题:http://stackoverflow.com/questions/2237291 – Gordon 2010-04-05 14:44:04

+0

不,它是一般来说。 – Rella 2010-04-05 14:51:56

回答

5

FILE_TO_REPLACE_IN.php:

<?php 
define("DB_SERVER", "{DB_SERVER}"); 
define("DB_USER", "{DB_USER}"); 
define("DB_PASS", "{DB_PASS}"); 
define("DB_NAME", "{DB_NAME}"); 

SCRIPT_TO_CHANGE_WITH.php:

<?php 

$searchF = array('{DB_SERVER}','{DB_USER}','{DB_PASS}','{DB_NAME}'); 
$replaceW = array('localhost', 'user',  'pass',  'db'); 

$fh = fopen("FILE_TO_REPLACE_IN.php", 'w'); 
$file = file_get_contents($fh); 
$file = str_replace($searchF, $replaceW, $file); 
fwrite($fh, $file); 

...或者类似的东西。

0

不是在谈论安全,一个简单的办法是,你可以使用像file_get_contents读函数读取PHP文件一旦你有内容,你应该在一些textarea中显示它们,你的用户可以在那里编辑它。一旦他们编辑并提交表格,您应该更新信息。

0

这是可能的......但你将需要基本的PHP技能。使用fopenfile_put_contents。最简单的方法是从头开始编写整个PHP文件...

0

使用fopen()fwrite()和后妃您可以编辑任何类型的文件,包括PHP的。

0

您可以打开该文件

$lines = file('myConstants.php'); 

编辑的内容,比存回

$myFile = 'myConstants.php' 
$fh = fopen($myFile, 'w') or die("can't open file"); 
fwrite($fh, 'DATA HERE'); 
fclose($fh); 
6

你可以编写程序编辑的任何文件,包括PHP文件。

顺便说一句。小心点!如果你展示你的程序如何修改它自己,它可能会一遍又一遍非常快地完成,并最终开始杀死像矩阵或终结者电影中的人...

2

如果你正在设计自己的解决方案,你应该避免使用元编程(检查维基百科)进行配置。

php有一个可以使用的内置ini文件解析器。当你只有足够的键值对。

写作:

<?php 
file_put_contents("settings.ini","[auth] 
DB_SERVER=".DB_SERVER." 
DB_USER=".DB_USER." 
DB_PASS=".DB_PASS." 
DB_NAME=".DB_NAME." 
"); 
?> 

阅读:

<?php 
$auth = parse_ini_file("settings.ini"); 
foreach ($auth as $k => $v) { 
define($k,$v); 
} 
?> 
相关问题