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

Php 获取页面信息,而不是整个页面,php,variables,ob-start,Php,Variables,Ob Start,在index.php中,虽然名称可以是任何名称,但我现在在最上面有一个数组,只是为了测试 <?php $settings = array( enabled => true, id => "KMS", theme=>"kms_standard", ); ?> 要获取创建/编辑的日期,我使用date('l jS\of F Y h:I:sa',filemtime('../'.$page)) 有没有一种方法可以像这样为文档设置数据,然后获取它,如

index.php
中,虽然名称可以是任何名称,但我现在在最上面有一个数组,只是为了测试

<?php
  $settings = array(
   enabled => true,
   id => "KMS",
   theme=>"kms_standard",
  );
?>
要获取创建/编辑的日期,我使用
date('l jS\of F Y h:I:sa',filemtime('../'.$page))

有没有一种方法可以像这样为文档设置数据,然后获取它,如果没有,我如何在for-each循环中使用数组而不包括整个文件。我相信如果我使用
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>';
    }
}
仪表板

$jsona = file_get_contents("../pages.json");
$jsonb = json_decode($jsona,true);      
$data = $jsonb['pages'];
有没有一种方法可以像这样为文档设置数据,然后获取它,如果没有,我如何在for-each循环中使用数组而不包括整个文件。我相信如果我包含($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等常见格式变得更加重要。当您可以简单地使用一些本机方法时,您不希望使用字符串操纵来读取数组。

Ok我将研究为用户设置的页面创建动态生成的JSON文件。另外,我正在研究
cURL
cURL,如果两个文件都在同一台服务器上,则不需要它。不需要浪费1个HTTP请求,因为这可以通过文件系统轻松完成,但是如果目标PHP代码必须处理,那么是,
cURL
file\u get\u内容
是相关的。好的,汉克,我会尝试一下JSON,好的。当文件被删除时,只需要删除整个属性。Hanky我尝试创建一个JSON文件并对其进行解码,但在尝试var_dump它时返回NULL。您使用的新格式很好。第一个
var_转储($jsona)
首先查看您是否获得了良好的响应,然后您可以稍后对其进行解码。
$jsona = file_get_contents("../pages.json");
$jsonb = json_decode($jsona,true);      
$data = $jsonb['pages'];
if(isset($_GET['data'])){
 $settings = array(
   enabled => true,
   id => "KMS",
   layout=>"kms_standard",
  );
  return $settings;
  exit();
}