我有一个主页,我有一些变量,如电话号码,打开时间等,我不能想到一种方式来永久存储多个变量,而不是在数据库中,我不想制作一张表来存储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