2013-11-21 33 views
0

我嘗試使用下面的PHP代碼如何動態編輯和使用PHP腳本

$string_Data = 'It works success!!'; 
$file_To_Edit = "/etc/hosts"; 
exec("sudo chmod 777 /etc/hosts"); 
$opened_File = file($file_To_Edit) or die("Error. Code:2 - Can not open file $file_To_Edit"); 
$lines = preg_grep(' /test.com/', $opened_File); 
    foreach(array_keys($lines) as $key) { 
     $opened_File[$key] = substr($opened_File[$key], 0, -1) . $string_Data; 
    } 
$f = fopen($file_To_Edit, 'w') or die("Error $file_To_Edit"); 
fwrite($f, implode("\n", $opened_File)); 
fclose($f); 

誰能告訴我我在哪裏動態編輯和更新我的/ etc/hosts文件更新我的etc/hosts文件出錯了,因爲我無法更新/ etc/hosts文件。

+0

我認爲你需要運行該腳本根和類似的exec( 「sudo的搭配chmod 777/etc/hosts文件」)根的權利;是安全問題恕我直言 – drupality

回答

0
//suppose you are in /var/www/html/website/ 

$currentdir=getcwd(); // it will save your current directory location  

chdir('../../../../etc/'); // it will change your web directory(/var/www/html/website/) to etc directory (/etc/) 

$file='hosts'; 
$current=file_get_contents($file); 
$string_Data = 'It works success!!'; 
$current.=$string_Data; 
if(file_put_contents($file, $current)) 
{ 
echo "success in writing"; 
} 
else 
{ 
echo "fail in writing"; 
} 

chdir("$currentdir"); // it will change directory (/etc/) to your web directory(/var/www/html/website/) 

//change permission before run php page because if your user don't have permission this code can't do writing 
+0

我希望有人誰倒票將提供解釋爲什麼這是錯誤的。很明顯,海報會考慮到它,它對他有用,現在我必須進行反覆試驗,看它是否有效。 –

1

您需要修改/ etc/hosts文件

+0

我已更新我的問題 – MSA