我正在努力使面包屑正常工作。
现在它们可以工作,但是onclick中的网址不正确。
<?php
//$url = strstr($_SERVER["REQUEST_URI"], 'admin');
$url = strstr('/content/modal/admin/content/polls.php', 'admin'); // admin/content/polls.php
$parse_url = preg_replace('/\.[^.\s]{3,4}$/', '', $url); // admin/content/polls
$array = explode("/", $parse_url);
$counter = 0;
foreach($array as $item) {
echo '<a href="javascript:;" onclick="initializemodal(\'' . $array[$counter] . '\')">' . $item . '</a> / ';
$counter++;
}
显示为:
<a href="javascript:;" onclick="initializemodal('admin')">admin</a> /
<a href="javascript:;" onclick="initializemodal('content')">content</a> /
<a href="javascript:;" onclick="initializemodal('polls')">polls</a> /
我要存档的结果:
<a href="javascript:;" onclick="initializemodal('admin')">admin</a> /
<a href="javascript:;" onclick="initializemodal('admin/content')">content</a> /
<a href="javascript:;" onclick="initializemodal('admin/content/polls')">polls</a> /
如何编辑脚本,使其像上面的示例一样工作?
答案 0 :(得分:1)
评论对
$counter = 0;
foreach($array as $item) {
echo '<a href="javascript:;" onclick="initializemodal(\'' . $array[$counter] . '\')">' . $item . '</a> / ';
$counter++;
}
Foreach可以像
一样使用foreach($array AS $index => $value)
不需要$ counter,只需使用$index
。
此外,您现在将$counter++;
作为一行,但是您可以将其与上面的行合并:
... initializemodal(\'' . $array[$counter++] . '\')"...
请注意,如果将++
放在变量后面,使用该变量后它将增加。
$i = 0;
echo $i++; // This will print 0
echo $i++; // This will print 1
$i = 0;
echo ++$i; // This will print 1
echo ++$i; // This will print 2
要回答您的问题,您需要存储以前的路径。
$path = []
foreach($array as $value) {
$path[] = $value; // This array will first contain only one item, then two, then three, etc.
echo '<a href="javascript:;" onclick="initializemodal(\'' . implode('/', $path) . '\')">' . $item . '</a> / ';
}
implode将粘贴$path
中的所有值。首先,没有什么可以胶合的,因此将产生admin
。第二次迭代将使admin与内容粘合在一起,并在它们之间添加一个/
。等
答案 1 :(得分:0)
您需要粘贴所有元素直到$ counter当前值。现在,您仅使用$counter
指向的内容,因此您总是会得到最后一个元素,而不是整个“路径”。基本上,您需要另一个循环(未经测试):
$counter = 0;
foreach($array as $item) {
$tmp = [];
for ($i=0; $i<=$counter; $i++) {
$tmp[] = $array($i);
}
$path = implode('/', $tmp);
echo '<a href="javascript:;" onclick="initializemodal(\'' . $path . '\')">' . $item . '</a> / ';
$counter++;
}