存储没有数据库的页面属性

时间:2014-12-02 12:41:49

标签: php

我有一个主页,我有一些变量,如电话号码,开放时间等,我不能想到一种永久存储多个变量的方法,而不是在数据库中,我不想制作一个表只是为了存储1排物业。我在考虑使用文本文件,但我真的不知道。

3 个答案:

答案 0 :(得分:6)

这正是像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']

答案 1 :(得分:5)

如果要将页面信息存储在另一个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'ed文件位于您网站的安全非公开区域的数据库(减少某人'劫持'您的数据库的可能性)
  • 在不需要数据库的地方存储易于更改的变量。

答案 2 :(得分:3)

有很多方法:

  1. JSON

    $data = json_decode(file_get_contents('config.json'), true);
    
  2. PHP本机序列化

    $data = unserialize(file_get_contents('config.bin'));
    
  3. INI文件

    $data = parse_ini_file('config.ini');
    
  4. PHP文件

    $data = require 'config.php';
    
    // config.php
    <?php
    return ['foo' => 'bar'];
    
  5. XML文件,格式化文本文件等

  6. 每个选项都有自己的特点,本机序列化具有最差的手工编辑格式。如果性能很重要并且您选择了需要大量解析的格式,那么您将需要一个缓存层来简化解析时间。

    注意:如果您正在从PHP中编写和读取数据,则还需要担心file locking