2016-01-06 29 views
0

我有一些(簡化的)PHP配置爲數據庫連接。從PHP變量回聲輸出字符串,註釋

<?php 
/* 
<CONFIG application="Example" version="1.1"> 
    <Database> 
     <Driver>MYSQL</Driver> 
     <Host>http://example.com</Host> 
     <Port>3306</Port> 
     <Database>qwerty</Database> 
     <Username>usr</Username> 
     <Password>hackme</Password> 
    </Database> 
</CONFIG> 
*/ 
?> 

我怎麼能填充主機,與來自數組變量中的意見,$serv["host"]

這裏是我的嘗試......

<?php $serv["host"] = "http://example.com"; ?> 

<?php 
/* 
<CONFIG application="Example" version="1.1"> 
    <Database> 
     <Driver>MYSQL</Driver> 
     <Host>$serv["host"]</Host> 
     <Port>3306</Port> 
     <Database>qwerty</Database> 
     <Username>usr</Username> 
     <Password>hackme</Password> 
    </Database> 
</CONFIG> 
*/ 
?> 

我已經試過各種串聯和回聲但它不能正確編譯或打印出我的數據庫連接細節。我需要保留這些評論,因爲我正在編輯的代碼似乎需要它。

+0

我不認爲有可能在評論中迴應事情。我不確定你想要達到什麼。 – DaMaGeX

+0

你想編輯你實際運行的php腳本嗎?這聽起來像一個非常糟糕的主意,只需在需要的地方填寫所需的值即可。你確定你不需要輸出有效的xml來建立數據庫連接嗎? – jeroen

+0

Web應用程序中的MySQL服務器配置文件我有像在我的示例中那樣的註釋。由於某種原因,它只能這樣工作。我正在修改DB config php文件以從另一個集中的地方查找主機值。我可以重構整個事情,但這只是我需要的小改變。對於我來說評論是有問題的。 –

回答

1
<?php 
$serv = array(
    'host' => 'http://example.com'; 
); 
?> 

<CONFIG application="Example" version="1.1"> 
    <Database> 
     <Driver>MYSQL</Driver> 
     <Host><?php echo $serv['host']; ?></Host> 
     <Port>3306</Port> 
     <Database>qwerty</Database> 
     <Username>usr</Username> 
     <Password>hackme</Password> 
    </Database> 
</CONFIG> 
+0

用這個解決方案直接訪問文件會打印出我的db連接的詳細信息,供任何人看到 –

+0

把文件放在哪裏不是這個問題的關鍵。 –

0

您可以讓PHP創建一個包含您的註釋掉(out-comment?)代碼幷包含它的文件。

<?php $serv["host"] = "http://example.com"; ?> 

<?php 
$dbcon = " 
/* 
<CONFIG application="Example" version="1.1"> 
    <Database> 
     <Driver>MYSQL</Driver> 
     <Host>" . $serv["host"] . "</Host> 
     <Port>3306</Port> 
     <Database>qwerty</Database> 
     <Username>usr</Username> 
     <Password>hackme</Password> 
    </Database> 
</CONFIG> 
*/"; 
$f = fopen("comment.php", 'w'); 
fwrite($f, $dbcon); 
fclose($f); 
include("comment.php"); 

?> 

當然,您可能必須調整目標路徑和包含路徑以及文件系統權限。儘管如此,確保它不能從文檔根目錄中讀取/猜測。 我很想聽聽這個實際上是否有效。

+0

我曾想過這件事,這是一個創造性的解決方案。但是,我想知道是否在服務器上不必要地加載需要此數據庫連接的頁面上的每個命中文件? –

+0

我認爲這不會有太大的影響。但這取決於你的負擔,當然。您可能想要通過不同的主機名修改文件名,也許只有在需要新的主機名時才寫入新文件? ('if(file_exists(...))') –

+0

任何關心解釋downvote? –