Smarty从PHP中的.conf文件中读取配置值

时间:2013-08-07 14:56:59

标签: php smarty

对于会议日程,我希望为任何给定的房间提供动态页面。用户可以在config文件夹中编辑名为“schedules.conf”的文件。目前它看起来像这样:

[rooms]
room = 5022
room = 5082

我可以正常加载,并在我的网页中显示2个链接:

{config_load file="schedules.conf" section="rooms"}
......
......
......

{foreach from=#room# item=r}

<li><span><span><a href="{$smarty.const.SITE_URL}/admin/schedules.list.php?room={$r}">Schedules {$r}</a></span></span></li>                    

{/foreach}

所以它链接到处理程序的PHP文件,现在在php文件中我想检查配置文件中存在该房间的天气,所以如果有人手动更改地址栏中房间的GET值,我可能有机会处理:

  if(!isset($_GET["room"]))
  {
      header('location: '.SITE_URL.'/admin/index.php');
  }
  else
  {
      $validRooms = $smarty->getConfigDir();

      //How to check id the $_GET["room"] value exist in the config file      
  }

3 个答案:

答案 0 :(得分:0)

请为此页面Conditional checks using smarty浏览isset()

修改

根据OP的评论#1:

如何使用条件检查以及in_array($_GET['room'], $validRooms)

答案 1 :(得分:0)

通过这种方式检查:使用in_array()函数

$room = array(5022,5082);
if (in_array($_GET['room'], $room)) {
    // you can pull the data from database
}else{
die('Wrong room data');
}

答案 2 :(得分:0)

幸运的是我从Smarty论坛管理员那里得到了答案:以下是如何做到的:

您可以在PHP脚本中加载配置文件,而不是在模板中加载配置文件。

请参阅Config load API

之后你可以阅读配置文件

请参阅Config vars