PHP - 使用从ForEach循环中创建的对象创建的变量的SimpleXML

时间:2012-08-04 23:33:46

标签: php variables object foreach simplexml

我正在尝试为我的新网站开发导航面包屑系统。 我的页面使用SimpleXML从xml数据库中检索它的文件名和页面信息。

我收到最后一个代码块中 preg_replace(); 函数的php错误:解析错误:语法错误,/ home / content / 85/8762385 / html中的意外T_STRING第21行/joelsdesign/movies/we-are-hiring.php

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

这是我的xml文件的内容:http://joelsdesign.info/movies/scores.xml

我的导航菜单是'required',而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);
}

1 个答案:

答案 0 :(得分:0)

单词current周围的引号未被转义:

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

另外,如果不使用正则表达式,则不应使用preg_replace。你应该使用str_replace。

如果你真的需要preg_replace,你可能会编写一个正则表达式 - 正则表达式 - 需要以分隔符开头,通常是正斜杠/。因此,第二个错误是由<不是正则表达式的已知分隔符而创建的。