我需要實現的是非常簡單的邏輯,我使用Laravel框架,並且需要我的用戶能夠直接從表單更改一些設置,而不是打開如下所示的設置文件:更改PHP文件陣列
<?php
return array(
'driver' => 'gd'
);
所以問題是如何訪問基於密鑰的PHP數組文件,更新值?
我需要實現的是非常簡單的邏輯,我使用Laravel框架,並且需要我的用戶能夠直接從表單更改一些設置,而不是打開如下所示的設置文件:更改PHP文件陣列
<?php
return array(
'driver' => 'gd'
);
所以問題是如何訪問基於密鑰的PHP數組文件,更新值?
與
$settings = require "settings.php";
越來越設定後,您可以填寫表單,並得到提交回的變化。之後你得到所有的設置到$settings
(不只是更改的設置,所有的「時間),你可以把它們寫回來
$php = "<?php return " . var_export($settings,true) . ";";
file_put_contents("settings.php", $php);
這是一種很好的方法,但有一個強制性警告:**確保輸入值被轉義或被列入白名單**,因爲該代碼將被評估,這是一個非常強大的安全問題。 – Bogdan
'var_export'創建有效的PHP,對字符串中的值進行必要的轉義。你在進入的$設置中有什麼是你以後會回來的。當然,現在(在問題的範圍之外),在保存之前放入$ settings的內容確實需要任何必要的清理。 – BareNakedCoder
難道這些設置特定於用戶的?這意味着可以有多個用戶與您的應用程序一起工作,並且每個用戶都可以擁有自己的配置文件和自定義值? – Bogdan
波格丹,不,這些設置僅限於系統,只能存在一個文件 –