什么是在没有数据库的情况下在PHP上保存用户输入变量的最佳方法?

时间:2014-11-05 19:25:40

标签: php database variables storage global

我想有一个页面,您可以在其中设置各种内容。例如:BoardName或Boardurl。它主要面向网站管理员。但我想在几乎每个页面中使用例如$ Boardname(例如:我有header.php并且在我的代码中:

  

包括'variables.php'

或该地区的某些事情。 Variables.php是存储变量的地方)。

现在我听说过PHP中的全局变量。但我也听说过根本不建议(由于加载时间)。然后我听说将它存储在数据库中。如果这不能给我一个答案,这是我唯一的解决方案。

有一个额外的例子:XenForo有基于用户输入的Boardname等选项。

提前致谢。 我希望我能说清楚

3 个答案:

答案 0 :(得分:0)

我认为你基本上是在想一个配置文件,所以你可以这样:

config.txt JSON编码对象/数组

{"BoardName":"a board name","Boardurl":"a board url"}

将此代码放在需要变量的所有文件的顶部

extract((array)json_decode(file_get_contents('config.txt')));

这样,您就可以随时随地使用$BoardName$Boardurl


当您需要回写文件时,请执行以下操作:

$new_conf = array();
if(isset($_POST['BoardName']))
{
    $new_conf['BoardName'] = $_POST['BoardName'];
}
if(isset($_POST['Boardurl']))
{
    $new_conf['Boardurl'] = $_POST['Boardurl'];
}

if($new_conf)
{
    file_put_contents('config.txt', json_encode(array_merge((array)json_decode(file_get_contents('config.txt')), $new_conf)));
}
else
{
    // no conf parameters given, do nothing
}

<强>声明

这种方法很容易出错,并且在最轻微的情况下不能很好地扩展。一旦你得到一个以上的管理员,然后狠狠地击中粉丝。如果你获得了大量的用户,那么你肯定会遇到一些磁盘访问速度问题。

答案 1 :(得分:-1)

Create your custom ini file, let's say user.ini file.

Inside this user ini file mention all variables.

user.ini sample content
; This is a sample configuration file

; Comments start with ';', as in php.ini

[settings]
cust_file_size= 12MB
error_log_path= "log/debug/"

[path_settings]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"


than for reading you can just do 
$user_settings_array = parse_ini_file("user.ini", true);
print_r($ini_array);

Than output will:

Array
(
    [settings] => Array
        (
             [cust_file_size] =>12MB
             [error_log_path] =>log/debug/
         )
    [path_settings] =>Array
        (    [path] =>/usr/local/bin
             [URL]  =>http://www.example.com/~username
        }


I hope this will help you.

Thanks

答案 2 :(得分:-1)

在您发布输入变量的页面中,请说 input.php 。使用以下代码。并记住以下几点。

  • 使用连接为$content变量提供所有需要的php变量。
  • 不要忘记在<?php变量的开头和结尾添加?>$content
  • \必须转义美元符号,看起来像\$,用于在外部文件中创建新变量。
  • 在变量周围使用{},然后放置一个分号;,后跟一个空格。这个空白空间非常重要。并尝试在每个可能的场合包括一个。
  • 最后使用变量'{}'周围的单引号。即使它是一个数字。因为如您所知,PHP变量会自动解析。

input.php 中的代码如下所示:

$content = "<?php ";
$content .= "\$Boardname='{$_POST['Boardname']}'; ";
$content .= "\$BoardUrl='{$_POST['BoardUrl']}'; ";
$content .= "?>";
file_put_contents("variables.php", $content);

然后,您可以使用 variables.php ,如下所示:

include 'variables.php';

我希望这是满足您需求/问题的最佳解决方案。