Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP和XML的页面属性_Php_Xml_Include - Fatal编程技术网

使用PHP和XML的页面属性

使用PHP和XML的页面属性,php,xml,include,Php,Xml,Include,好吧,我想这是可能的,但这有点超出我的能力。我拥有的是一个基本的header.php、index.php和footer.php,它将与includes一起工作。因此,子页面将是say about.php,并包含页眉和页脚。我要做的是创建一个xml文件,其中包含所有页面信息,如父页面、标题、描述等,并具有一个函数,该函数获取当前文件名,运行该函数并返回相关数据。我有一个获取文件名的函数 $currentFile = $_SERVER["PHP_SELF"]; $parts = Explode('/

好吧,我想这是可能的,但这有点超出我的能力。我拥有的是一个基本的header.php、index.php和footer.php,它将与includes一起工作。因此,子页面将是say about.php,并包含页眉和页脚。我要做的是创建一个xml文件,其中包含所有页面信息,如父页面、标题、描述等,并具有一个函数,该函数获取当前文件名,运行该函数并返回相关数据。我有一个获取文件名的函数

$currentFile = $_SERVER["PHP_SELF"];
$parts = Explode('/', $currentFile);
$filename = ( $parts[count($parts) - 1]);
此函数非常有效,可以返回当前页面文件名,例如about.php。我想要一个函数,它将把这个标题发送给所说的函数,解析xml以获得适当的内容并反馈给我。这可能吗

示例xml

<SITE>

<PAGE>
<FILENAME>about.php</FILENAME>
<DESCRIPTION>description description description </DESCRIPTION>
<TITLE>About Us</TITLE>
<PARENTS>
 <PARENT>Company</PARENT>
 <PARENT>People</PARENT>
</PARENTS>
</PAGE>

<PAGE>
<FILENAME>people.php</FILENAME>
<DESCRIPTION>description description description </DESCRIPTION>
<TITLE>People</TITLE>
<PARENTS>
 <PARENT>Company</PARENT>
</PARENTS>
</PAGE>

</SITE>

关于.php
描述描述描述
关于我们
公司
人
people.php
描述描述描述
人
公司

绝对有可能。以下是一些一般步骤:

  • 将settings.xml文件读入一个变量,例如file\u get\u contents
  • 用法:xml\u将\u解析为\u结构
  • 导航结果对象,然后将项目放在需要的位置

  • 我的解决方案是

    这是在动态页面的顶部

    include "includes/sitestructure.php";
    $currentFile = $_SERVER["PHP_SELF"];
    $parts = Explode('/', $currentFile);
    $pagePath = $parts[count($parts) - 1];
    
    $siteInf = getPage($pagePath); 
    $description = $siteInf->DESCRIPTION;
    $title = $siteInf->TITLE;
    
    我基本上取了当前模板文件的名称,然后通过getPage函数发送它,并将其引用到这里看到的函数中的XML

    function getPage($pagePath){
    
    $file = "includes/sitestructure.xml";
    $xml = simplexml_load_file($file);  
    $pages = $xml->xpath('PAGE[FILENAME="'.$pagePath.'"]');
    $pages = $pages[0];
    
    return $pages;  
    }
    
    最后我在适当的地方调用变量

     <title><?php echo $title ?></title>
      <meta name="description" content="<?php echo $description ?>">