我有一個主頁,我有一些變量,如電話號碼,打開時間等,我不能想到一種方式來永久存儲多個變量,而不是在數據庫中,我不想製作一張表來存儲1行的屬性值。我正在考慮使用一個文本文件,但我真的不知道。存儲頁面屬性沒有數據庫
回答
如果您要將頁面信息作爲變量存儲在另一個PHP文件中,您可以使用PHP's require_once
。
這將像數據庫(排序)。
如果這是一個您的變量你的PHP文件(我們稱之爲a.php
):
<?php
$phoneNumber = "1234 5678";
$openTimes = "09:00-17:00";
?>
你會使用require_once("/a.php");
利用文件中的變量,並使用它們像這樣:
<?php
require_once("/a.php");
echo "Phone Number: " . $phoneNumber;
?>
require_once
是非常有用的 PHP的功能,可以用於很多目的。的require_once
潛在用途的例子:
- 正好從一個
header
PHP文件 - 連接到其中
require_once
「編文件位於一個安全的非數據庫維護跨越整個網站的標題(減少某人'劫持'你的數據庫的機會) - 在不需要數據庫的地方存儲容易改變的變量。
公平地說,如果你想在它的最後有一個可讀的文件,但是會產生一個非常「全局」的範圍,這是一個更好的答案。 – 2014-12-02 12:51:09
實際上,你可以做'<?php return ['phoneNumber'=>'1234','openTimes'=> '09:00-17:00'];'然後在調用代碼中$ data = require 'a.php';' – 2014-12-02 12:52:11
@RobBaillie這個文件可能包含一個類,它可能會大大降低它的'全局變量'。 – cybermonkey 2014-12-02 12:53:02
這正是諸如Joomla等CMS解決方案的目標。只要您開始沿着這條路線走下任何體面的數據,您可能想要開始尋找類似的東西。
但是,如果您真的想要,您可以沿任何想要存儲的序列化路線並將其放入文本文件中。
例如,將其設置:
$configuration = array('PhoneNumber' => '123456789',
'OpenTimes' => 'Monday 9:00 to 12:00');
file_put_contents('configuration.txt', serialize($configuration);
獲得它回來了:
$configuration = unserialize(file_get_contents('configuration.txt'));
該文件可以包含任何東西 - 字符串或對象或什麼的。請注意,如果存儲對象,則需要確保在重新加載它們之前可能需要包含它們的類定義。如果你存儲資源(就像數據庫連接 - 我知道,不太可能!),你需要重新連接或重新打開資源。
另外 - 如果它真的只是一系列簡單的字符串,你可能想看看ini
文件。
http://php.net/manual/en/function.parse-ini-file.php
比方說,你有configuration.ini
文件與內容:
[address_info]
phone_number = 123456789
open_times = Monday 9:00 to 12:00
然後,您可以用加載:
$configuration = parse_ini_file("configuration.ini", true);
再搭配參考:
$configuration['address_info']['phone_number']
我可能會使用這個,但這是否是一種常見方式?我只是想知道,所以我習慣了我應該使用的東西,而不是我可以使用的東西。 – Batzz 2014-12-02 12:53:36
@Batzz'我最常見'的方式是我在答案中概述的方式,但我會說這兩種方法都很好。 – cybermonkey 2014-12-02 12:55:06
有很多常見的方法 - 如果它是一個非常簡單的結構,你也可以看看ini文件 - 我已經添加了對 – 2014-12-02 12:55:25
方法有很多種:
JSON
$data = json_decode(file_get_contents('config.json'), true);
PHP本機序列
$data = unserialize(file_get_contents('config.bin'));
INI文件
$data = parse_ini_file('config.ini');
PHP文件
$data = require 'config.php'; // config.php <?php return ['foo' => 'bar'];
XML文件格式的文本文件等
每個選項都有其特殊性,有可能出現的最壞的格式手動編輯的本機序列。如果性能很重要,並且您選擇了需要大量解析的格式,則您需要有一個緩存層來緩解解析時間。
注意:如果您正在使用PHP編寫和讀取數據,您還需要擔心file locking。
的引用。 – cybermonkey 2014-12-02 13:06:46
- 1. 數據庫屬性「鏡像」頁面
- 2. 如何設計數據庫以將屬性屬性存儲到數據庫中
- 3. AttributeError:lpoApp實例沒有屬性'數據庫'
- 4. 查詢數據存儲:「NoneType」對象沒有屬性
- 5. 註冊頁面數據存儲但沒有收到JSON編碼
- 6. 紅寶石。 OOP。屬性沒有存儲?
- 7. 嵌套的屬性沒有保存在數據庫Rails 5
- 8. 註冊頁面不存儲數據庫中的數據
- 9. 在'class'和HTML5數據屬性中存儲數據屬性
- 10. Razor WebPages頁面數據或頁面的數據存儲?
- 11. 沒有存儲數據
- 12. 使用html/javascript將數據存儲在沒有數據庫的網頁上
- 13. Asp.net頁面計數器:在MySql數據庫中存儲號碼
- 14. 分組和存儲HTML'數據'屬性
- 15. GeoExt屬性存儲未加載數據
- 16. 搜索GAE數據存儲屬性
- 17. PHP環境變量?沒有數據庫存儲數據
- 18. 將數據存儲在沒有數據庫的Ruby on Rails中
- 19. 數據沒有存儲在數據庫中cakephp
- 20. 產品屬性和屬性選項如何存儲在Magento數據庫中?
- 21. 離開前存儲數據頁面
- 22. 如何存儲數據的HTML頁面
- 23. 在PHP頁面中存儲webforms數據
- 24. 數據存儲如何在頁面
- 25. 在關係數據庫中存儲靜態(類)屬性
- 26. Rails - 帶屬性的模型,不存儲在數據庫中
- 27. Activiti BPMN引擎:在數據庫中存儲定製屬性
- 28. 關係數據庫結構中存儲的獨特屬性SubCatagories
- 29. 使用Commons配置在數據庫中存儲屬性
- 30. 將屬性存儲在數據庫中,但在本地覆蓋
沒有其他可能:數據庫,文本文件,hardcording。 – 2014-12-02 12:43:18
你會多少次更新這些變量?那些更新將如何進行? – 2014-12-02 12:59:20
在進入StackOverflow之前,您應該已經完成了足夠的研究/工作,您已經完成了代碼初稿。當你仍然處於這樣的設計階段時,你的問題最終會出現太多的開放式/廣泛的問題,以適合像SO這樣的問答網站 - 最好把它放在論壇上。 – ArtOfWarfare 2014-12-02 15:03:33