2011-12-13 37 views
0

好吧,我會想象這可能會做到,但它比我的能力略高。我擁有的是一個基本的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> 

回答

0

絕對有可能的。以下是一些常規步驟:

  1. 將您的settings.xml文件讀入var,即file_get_contents之類的somethimg。
  2. 使用:xml_parse_into_struc http://php.net/manual/en/function.xml-parse-into-struct.php
  3. 導航該結果對象,然後把你的物品放在你需要它們的地方。
0

我的解決辦法結束了......

這是在動態頁面的頂部...

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 ?>">