我有一個主頁,我有一些變量,如電話號碼,打開時間等,我不能想到一種方式來永久存儲多個變量,而不是在數據庫中,我不想製作一張表來存儲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. 錯誤:沒有存儲ID數據庫
- 5. 正在獲取attributeError:type object'Level_2_Headings'沒有屬性'ancestor'(GAE數據存儲)
- 6. 查詢數據存儲:「NoneType」對象沒有屬性
- 7. 註冊頁面數據存儲但沒有收到JSON編碼
- 8. 紅寶石。 OOP。屬性沒有存儲?
- 9. Facebook頁面URL:有沒有禁止詞語的存儲庫?
- 10. 嵌套的屬性沒有保存在數據庫Rails 5
- 11. 在'class'和HTML5數據屬性中存儲數據屬性
- 12. 設計一個數據庫來存儲頁面數據
- 13. 註冊頁面不存儲數據庫中的數據
- 14. 將具有兩個屬性的唯一數據存儲到數據庫表中?
- 15. 使用數據庫存儲和獲取網頁的html頁面
- 16. Razor WebPages頁面數據或頁面的數據存儲?
- 17. 沒有存儲數據
- 18. 使用html/javascript將數據存儲在沒有數據庫的網頁上
- 19. 分組和存儲HTML'數據'屬性
- 20. 存儲元素的數據屬性
- 21. 搜索GAE數據存儲屬性
- 22. GeoExt屬性存儲未加載數據
- 23. Asp.net頁面計數器:在MySql數據庫中存儲號碼
- 24. 數據沒有存儲數據
- 25. PHP環境變量?沒有數據庫存儲數據
- 26. 表單數據沒有存儲在數據庫中
- 27. 將數據存儲在沒有數據庫的Ruby on Rails中
- 28. 數據沒有存儲在數據庫中cakephp
- 29. 產品屬性和屬性選項如何存儲在Magento數據庫中?
- 30. 選定的屬性不存儲到數據庫
沒有其他可能:數據庫,文本文件,hardcording。 – 2014-12-02 12:43:18
你會多少次更新這些變量?那些更新將如何進行? – 2014-12-02 12:59:20
在進入StackOverflow之前,您應該已經完成了足夠的研究/工作,您已經完成了代碼初稿。當你仍然處於這樣的設計階段時,你的問題最終會出現太多的開放式/廣泛的問題,以適合像SO這樣的問答網站 - 最好把它放在論壇上。 – ArtOfWarfare 2014-12-02 15:03:33