一个.PHP文件可以编辑另一个吗?

时间:2010-04-05 14:33:48

标签: php

所以我有一个常量文件。我想让用户定义它们然后使用全局常量编辑我的.php文件(不是xml - 真正的PHP文件)

使用此类代码

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

如何从另一个PHP文件编辑.php文件?有可能吗?

以后我想要实现的不仅是重新定义的常量,还有一些能够自我修改的智能代码。

如果有人可以,请告诉我一个功能,在我的档案中更改“localhost”字样......

8 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:6)

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

......或类似的东西。

答案 2 :(得分:2)

看一下Zend的CodeGenerator模块。使用reflection api,您可以以编程方式创建文件和类。

答案 3 :(得分: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);
}
?>

答案 4 :(得分:0)

不谈论安全性,一个简单的方法是你可以使用file_get_contents这样的阅读功能阅读php文件,一旦你有了内容,你应该在用户可以使用的textarea中显示它们编辑它。一旦他们编辑并提交表单,您应该更新信息。

答案 5 :(得分:0)

这是可能的......但你需要基本的PHP技能。

使用fopenfile_put_contents。最简单的方法是从头开始编写整个PHP文件......

答案 6 :(得分:0)

使用fopen() fwrite()和consorts,你可以编辑任何类型的文件,包括php文件。

答案 7 :(得分:0)

您可以打开文件

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

编辑内容,然后将其保存回来

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