2016-01-04 30 views
0

大家好!我對PHP比較陌生,但我學得很快。每當我學習一門新語言時,我都喜歡參加一個複雜的實踐項目,希望能讓我的語言更加完善。因此,我正在開發一個類似CMS的系統。基於模板在php中寫配置文件

就這樣說,我已經到了一個讓我有點難受的地步。我製作了一個表單,用戶可以輸入他們的數據庫信息。我的系統通過驗證信息,一旦它被接受,我想將它存儲到配置文件中。我希望將其設置爲與Wordpress類似,但它們具有配置文件模板,將其複製爲新名稱,並在保留所有空格和註釋的同時編輯這些值。我已經瀏覽了WordPress的源文件,以確定它們是如何完成的,我很確定他們打開文件,使用正則表達式找到他們想要改變的變量,然後簡單地覆蓋整個行。所以我的困境是,我無法追蹤所有事情,弄清楚他們是如何做到的,所以儘管我知道我需要做什麼,但我並不完全知道如何做。我做了大量的研究,還沒有找到我需要的信息。其次,我希望你能幫助我確定這是否是實現這一目標的最佳方法。如果您知道任何更好的將信息存儲到文件中的方法(基於模板文件),那麼我會非常感謝您的輸入。

最後,在StackOverflow上查看其他類似的問題,其中很多人都說要使用ini文件。儘管如此,這些問題的答案似乎並不能很好地解釋我將如何去做。另外,我更喜歡使用一個php文件,但如果它證明更容易,更快或更可靠,則ini文件並不完全沒有問題。

非常感謝您的時間!

回答

1

最終你只是想連載一些信息到一個文件中,並能夠再次反序列化它。爲此,不要考慮「模板」,而應考慮將信息序列化到文件中。 PHP的serialize會做,但幾乎不可讀或可編輯,所以只需選擇一個友好的格式。 YAMLJSON對於這個目的都非常好。例如: -

$userInput = ['foo' => 'bar', 'baz' => 42]; 
file_put_contents('config.json', json_encode($userInput, JSON_PRETTY_PRINT)); 

$configuration = json_decode(file_get_contents('config.json'), true); 

INI也是一個很簡單的人可編輯的文件格式,PHP可以read INI文件,但沒有任何功能開箱也他們。

+0

我感謝您的快速回答!我確實有一個問題。當我研究如何完成這個時,我研究了file_put_contents(),但是從php文檔看來,它似乎只是附加到文件,而不是覆蓋現有條目。它是否正確?或者我誤解了? –

+0

它可以執行任何操作,具體取決於您設置的參數。再次閱讀文檔。 – deceze

+0

太棒了!非常感謝你! –

相關問題