2012-08-04 57 views
0

我正在嘗試爲我的新網站開發導航麪包屑系統。 我的頁面使用SimpleXML從xml數據庫中檢索它的文件名和頁面信息。PHP - SimpleXML使用從ForEach Loop製作的對象創建的變量

我收到的preg_replace()的php錯誤;功能在最後的碼塊:解析錯誤:語法錯誤,在/home/content/85/8762385/html/joelsdesign/movies/we-are-hiring.php意想不到T_STRING第21行

在文檔的頭部,有 $ dom = simplexml_load_file('pages.xml');

這是我的XML文件的內容:http://joelsdesign.info/movies/scores.xml

我的導航菜單是「必要」和require語句存儲在我的變量稱爲$ NAV

foreach ($dom->page as $page) { 
    $title = $page->title; 
    $file = $page->file; 
    $nav = file_get_contents('require/nav.php'); 
    $nav = preg_replace("<li><a href=\"".$file."\">".$title."</a></li>", "<li class="current"><a href=\"".$file."\">".$title."</a></li>", $nav); 
} 
+0

作爲一個品味的問題,我喜歡迂迴關於我的問題,並總是研究我得到的錯誤消息。大多數情況下,這導致我顯示這些錯誤的主要4-5個原因。因此,我甚至在發佈之前最終回答了我自己的大部分問題。 – 2012-08-04 23:52:11

回答

0

的引號字current未被轉義:

$nav = preg_replace("<li><a href=\"".$file."\">".$title."</a></li>", "<li class=\"current\"><a href=\"".$file."\">".$title."</a></li>", $nav); 

Al所以你不應該使用preg_replace而不使用正則表達式。你應該使用str_replace。

如果你真的需要preg_replace,你會寫一個正則表達式 - 正則表達式 - 它需要以分隔符開頭,最常見的是正斜槓/。因此,第二個錯誤是由於<不是正則表達式的已知分隔符而造成的。

+0

工作,但顯示第二級錯誤,說:'警告:preg_replace()[function.preg-replace]:未知的修飾符'<'' – 2012-08-04 23:39:15

+0

我已經更新了我的答案與二級錯誤的信息。請在問題中寫下您評論的內容,以便其他人可以瞭解爲什麼我的答案需要包含這些規範。 – 2012-08-04 23:48:32