获取页面信息而不是整个页面

时间:2014-07-21 02:13:37

标签: php variables ob-start

index.php虽然名称可以是任何内容,但我现在在顶部有一个数组,仅用于测试目的。

<?php
  $settings = array(
   enabled => true,
   id => "KMS",
   theme=>"kms_standard",
  );
?>

我开始将其用作在CMS表中使用的信息。基本上我正在扫描主目录中的页面和其他目录。然后我将li回显到&#34;表&#34;显示信息虽然我需要更多的信息,而不仅仅是它创建/编辑的日期。

EX:

Page Name       |       Identifier        |        Status       |      Theme     |     Created/Edited
 index.php             CMS                        Enabled              Dark          12/12/12 12:00      

要获取创建/编辑的日期,请使用date('l jS \of F Y h:i:s A',filemtime('../'.$page))

有没有办法为文档设置这样的数据然后得到它,如果不是如何在不包含整个文件的每个循环中使用数组。我相信如果我include($file)它将解析所有HTML和PHP,但我只需要该页面中的$settings变量。我希望我能让自己清楚明白。如果不是下面的例子

function is_dir_empty($dir) {
  if (!is_readable($dir)) return NULL; 
      $handle = opendir($dir);
      while (false !== ($entry = readdir($handle))) {
         if ($entry != "." && $entry != "..") {
         return FALSE;
        }
      }
     return TRUE;
 }
$pages = scandir('../',0);
foreach($pages as $page){
    if(is_dir('../'.$page) && !is_dir_empty('../'.$page)){
       //iterate deeper to get these files as well
    }elseif(!is_dir('../'.$page)){
     $file = get_file('../'.$page);//basically get the array of information some how
     echo '<div class="row" id="'.removeExtensions($page).'"><ul>'.
          '<li class="fifths"><div class="checkbox_container">'.
          '<input type="checkbox" id="'.$kpage.'_check" value="'.$page.'" class="checkbox" name="delete_page[]" />'.
          '<label for="'.$kpage.'_check"><span></span></label></div>'.$kpage.'</li>'.
          '<li class="fifths">'.$file['id'].'</li>'.
          '<li class="fifths">'.$file['enabled'].'</li>'.
          '<li class="fifths">'.$file['theme'].'</li>'.
          '<li class="fifths" title="'.date('l jS \of F Y h:i:s A',filemtime('../'.$page)).'">'.date('l jS \of F Y h:i:s A',filemtime('../'.$page)).'</li></ul></div>';
    }
}

testing table for pages

更新未来参考资料 这完美无缺

JSON

{
    "index.php":{
       "enabled":"true",
       "theme":"dark",
       "identifier":"KMS"
    }
}

仪表板

$jsona = file_get_contents("../pages.json");
$jsonb = json_decode($jsona,true);      
$data = $jsonb['pages'];

1 个答案:

答案 0 :(得分:1)

  

有没有办法为文档设置这样的数据然后得到它,如果不是如何在不包含整个文件的每个循环中使用数组。我相信如果我包含($ file)它将解析所有HTML和PHP,但我只需要该页面中的$ settings变量。

通常应使用您不希望使用的include来包含代码。由于您的$settings变量是PHP代码,我建议仍然使用该方法。

包含文件的任何其他方式仍然涉及读取文件,然后从中解析所需的内容,这反过来可能比使用包含更多的资源。当您包含一个文件时,您将获得包含它的文件所有可用的PHP代码。

但是对于这种情况,最好将数据存储在数据库或至少一个文本格式文件中,然后为您的目的解析该文件。如果您只需从中获取一些静态数据,则无需处理整个文件。您可以将数据存储为XML或JSON以便于操作,而不必使用普通字符串。

至于编辑中的代码。

if(isset($_GET['data'])){
 $settings = array(
   enabled => true,
   id => "KMS",
   layout=>"kms_standard",
  );
  return $settings;
  exit();
}
PHP中的

return对HTTP请求没有意义。这不会输出任何内容,你的cURL也不会得到任何回复。您的$settings数组必须打印在页面上。现在问题是如何打印数组并以可用的格式输出。那些像JSON或XML这样的常见格式变得更加重要的地方。当你可以简单地使用一些原生方法时,你不想使用字符串操作来读取数组。