2012-07-13 66 views
-1

我正在购买一个名为display.php的购物车。当你浏览导航时,这个页面被重复调用,总是自己调用,但是查询新的,更具体的东西。我正在尝试制作能够提供前几页链接的面包屑,但事实证明这很麻烦。如何将递归php面包屑更改为链接?

display.php的这一部分检索查询用来查找内容的“id”和面包屑,这是之前的面包屑字符串。 “id”始终添加到面包屑字符串中。

$id = $_GET['id']; 
$breadcrumbs=$_GET['breadcrumbs']; 
$breadcrumbs = $breadcrumbs." > ".$id; 
echo $breadcrumbs 

,作为标识变量用于查询的东西,被生成的链接去一遍,但查询新的东西,并采取面包屑字符串它Display.php的。 <a href="http://www.myurl.com/display.php?id='.$name.'&depth='.$sub_level.'&breadcrumbs='.$breadcrumbs.'"><img src="imagen/logo1.jpg" alt="" width="100" height="100" /><br>'. $name . '</a>

每当我进入一个新页面时,面包屑都会显示出来,但我怎样才能安全地将这些字符串语句更改为链接?一个不能安全地携带另一个字符串。我认为如果我使用>字符作为分隔符来爆炸breadcrumb字符串,这是可能的。我该如何解决这个问题,以便在面包屑字符串中显示不错的链接?

$breadlist = explode(" > ", $breadcrumbs); 

    $linkarray = array(); 
    foreach $breadlist as $breadlink 
    { 
     $linkarray($j) = "<a href=display.php?id=".$breadlink($j)."?breadcrumbs=".$breadcrumbs.">".$breadlist($j).""; 
    }; 

回答

1

两个明显的问题(一些其他的小修正中):

  1. 您需要urlencode()您的网址。
  2. 您需要访问与[]而不是()阵列。

下面是一个例子,让你开始:

$breadlist = explode(" > ", $breadcrumbs); 

$linkarray = array(); 
foreach($breadlist as $breadlink) 
{ 
    $url = 'display.php?id=' . $breadlink . '&breadcrumbs='.$breadcrumbs; 
    $linkarray[] = '<a href="' . urlencode($url) . '">' . $breadlink . '</a>'; 
} 
+0

此代码是非常有用的,几乎完美地工作在自己。非常感谢你,并将我介绍给urlencode()。我只需要做两个调整。首先,我在链接文本的末尾添加了一个>。然后我做了另一个foreach来回应他们:foreach($ linkarray as $ onelink) { \t echo $ onelink; } – Dakkadakka 2012-07-13 17:19:26

+0

如果你想变得聪明,你可以像这样在一行中回显它们:'echo implode('',$ linkarray);'。完成! – nickb 2012-07-13 17:24:38