2012-09-12 88 views
0

我有一個php文件,我想在第二行添加包含路徑。我需要打開該文件並在第2行插入一行代碼。寫入PHP文件的第二行

我嘗試過一些技巧,其中沒有一個能夠工作,但我認爲它與我嘗試寫入的文本有關,可能不會正確地轉義字符,因爲我不太熟悉文件寫入。

因此,這裏是我想寫的文件:

$file = $_SERVER['DOCUMENT_ROOT'].'/'.$domaindir.'/test.php'; 

這裏是我想要插入到該文件的一段文字:

$dbfile = "include('".$_SERVER['DOCUMENT_ROOT']."/".$domaindir."/web_".$dbname.".inc.php');"; 

然後我在做什麼是一個字符串替換,但它所做的只是碰撞「session_start();」位換行!

任何人都可以指向我的教程的方向,可能會告訴我如何插入到我的PHP文件的第二行或確實如果任何人有任何想法?

我可以肯定地說,PHP文件的路徑已經完全測試,所以我知道它並不是說文件沒有打開或寫入。

任何想法將不勝感激。

在此先感謝。

+10

從PHP的PHP文件修改是一個可怕的想法。你需要什麼? – zerkms

+3

你沒有展示你如何打開文件,做替換等。你提供的兩個字符串沒有太多的幫助沒有更多的代碼。 – ernie

+0

'http:// php.net/manual/en/function.fgets.php' – DaOgre

回答

1

完全同意zerkms後 - PHP文件修改是壞主意 - 你不需要替換來做到這一點。

只需使用file()來讀取文件,該文件將您的PHP文件放置在一個方便的數組中。然後,你可以拼接陣列,或可能:

$file  = file('yourfile.php'); 

$first_line = array_shift($file);  // Remove first line and save it 
array_unshift($file, $yourSecondLine); // push second line 
array_unshift($file, $first_line);  // Save back the first line 

$fp = fopen('yourfile.php', 'w');  // Reopen the file 
fwrite($fp, implode("\n", $file));  
fclose($fp); 

檢查文件權限你這樣做了之後。它們可能會變得更加輕鬆(或者更少)如果你以root用戶身份在web樹上以遞歸方式運行它,在大多數Apache安裝中,你會發現是不可用的web站點,因爲Apache將不再能夠訪問文件現在已經誕生 - 再次超級用戶文件)。

+0

沒問題,但我會採取每個人的建議,這是一個壞主意,這樣做。我必須想出一個更好的方式來動態創建一個必須位於網站根目錄之外的db連接文件。 – Woz

+0

*爲什麼*必須在網站根目錄之外?不是爲了安全,當然? – LSerni