PHP,从目录中的文件创建动态列表

时间:2015-04-10 03:11:21

标签: php list variables foreach directory

我有一个文件目录,其主要目的是存储php变量以包含在站点中的其他文件中。每个文件包含相同的变量集,但具有不同的值。

例如:

event1.php

<?php
  $eventActive = 'true';
  $eventName = My First Event;
  $eventDate = 01/15;
?>

event2.php

<?php
  $eventActive = 'true';
  $eventName = My Second Event;
  $eventDate = 02/15;
?>

除了在其他页面中调用这些变量之外,我还想根据存储在目录中每个文件中的变量创建一个包含动态列表的页面。

像(基本概念)的东西:

for each file in directory ('/events') {
  if $eventActive = 'true'{ 
    <p><? echo $eventName ?></p>
  }
}

最好的方法是什么?

2 个答案:

答案 0 :(得分:0)

为每个活动创建Event课程或array。然后从目录中填充它。

$index = 0;
foreach (array_filter(glob($dir.'/*'), 'is_file') as $file) {
  @include $file; // Parses the file, so the variables within are set.
  $events[$index]['active'] = $eventActive;
  $events[$index]['name'] = $eventName;
  $events[$index]['date'] = $evetnDate;
  $index++;
  // OR
  // $events[] = new Event($eventName, $eventDate, $eventActive);
}
// Now the $events array contains all your events.
// List out the active ones
foreach ($events as $event) {
  echo ($event['active'] === 'true') ? $event['name'] : '';
  // OR
  // echo $event->isActive() ? $event->getName() : '';
}

答案 1 :(得分:0)

好的,所以我花了一些时间用它来解决问题的方法更清晰,但是利用外部json文件存储值

<?php

    $json = file_get_contents('events.json');

    $jsonArray = json_decode($json, true); // decode the JSON into an associative array

    foreach ($jsonArray as $value) {

        if (($value['active'] === 't') && ($value['fromDate'] >= $currentDate)) {

            echo '<p>'.$value['title'].' '.$value['fromDate'].' - '.$value['toDate'].'</p>';
        }
    }

    echo $currentDate;  
?>