2010-04-05 84 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); 
} 
?> 
相關問題