我有一个主页,其中有许多变量,例如电话号码,开放时间等,我想不出一种方法来永久存储多个变量,而不是在数据库中,我不想制作一个表只是为了存储1行的属性。我正在考虑可能使用文本文件,但我真的不知道。
这正是像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']
页面信息作为变量存储在另一个PHP文件中,则可以使用PHP的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
文件位于您网站安全非公共区域的数据库(减少有人"劫持"您的数据库的机会( - 在不需要数据库的地方存储易于更改的变量。
有很多方法:
-
杰伦
$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中写入和读取数据,你还需要担心文件锁定。