使用PHP和XML的页面属性
问题描述:
好吧,我会想象这可能会做到,但它比我的能力略高。我拥有的是一个基本的header.php,index.php和footer.php,它们将与include一起工作。所以一个子页面将被称为about.php并包含页眉和页脚。我想要做的是创建一个xml文件,其中包含所有的页面信息,如父页面,标题,描述等,并有一个函数获取当前文件名,运行该函数并返回相关数据。我有一个获取文件名功能...使用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>
答
绝对有可能的。以下是一些常规步骤:
- 将您的settings.xml文件读入var,即file_get_contents之类的somethimg。
- 使用:xml_parse_into_struc http://php.net/manual/en/function.xml-parse-into-struct.php
- 导航该结果对象,然后把你的物品放在你需要它们的地方。
答
我的解决办法结束了......
这是在动态页面的顶部...
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;
}
然后最后我把我的变量在适当的PLAC e ...
<title><?php echo $title ?></title>
<meta name="description" content="<?php echo $description ?>">