我已经在网上找到了这个代码,它几乎完成了我想要的东西,但只有一些问题。
当我点击主页面选项卡时,它会在域名前面添加https,并说该网站不可用,但如果我删除了它,则可以使用。
在网站上也有像home>这样的标题。 aaa-bbb-ccc> aaa-bbb> aaa我将提供我们的旧面包屑代码,并且我想知道我们是否指定了面包屑的URL。
另外,当我在浏览器中查看面包屑中间的网站时,会出现Home> $ title>索引
旧面包屑:
<?php
/*
Copyright Justin Whitford 2006.
http://www.whitford.id.au/
Perpetual, non-exclusive license to use this code is granted
on the condition that this notice is left in tact.
*/
function breadcrumbs(){
$bread = explode('/', $_SERVER['PHP_SELF']);
$url = '/';
$returnString = "<span class='bc0'><a href='$url'>Home</a>";
for($i=1;$i<count($bread)-1;$i++){
$url.=$bread[$i].'/';
$returnString .= " ></span> <span class='bc$i'><a href='$url'>"
.prettify($bread[$i])."</a>";
}
echo $returnString.'</span>';
}
function prettify($dirName){
$directoryName['aaa-bbb-ccc']='Locate Us';
$directoryName['aaa-bbb']='Contact';
$directoryName['breadcrumbs']='Foe';
if($directoryName[$dirName]!=''){
$dirName=$directoryName[$dirName];
}else{
$dirName = str_replace('_', ' ', $dirName);
$dirName = str_replace('%20', ' ', $dirName);
$dirName = ucwords(strtolower($dirName));
}
return $dirName;
}
这是我的新代码:
<?php
function breadcrumbs($separator = ' > ', $home = 'Home') {
$path = array_filter(explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
$base_url = ($_SERVER['HTTPS'] ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/';
$breadcrumbs = array("<a href=\"$base_url\">$home</a>");
$last = end(array_keys($path));
foreach ($path AS $x => $crumb) {
$title = ucwords(str_replace(array('.php', '_'), Array('', ' '), $crumb));
if ($x != $last){
$breadcrumbs[] = '<a href="$base_url$crumb">$title</a>';
}else{
$breadcrumbs[] = $title;
}
}
return implode($separator, $breadcrumbs);
}
echo breadcrumbs();
?>
感谢。
答案 0 :(得分:0)
尝试使用
$base_url = "http://". $_SERVER['HTTP_HOST'] . "/"`
并删除该检查。这是因为首先检查$_SERVER['HTTPS'] ? 'https' : 'http')
可能会返回https
。仅在您拥有安全域时才使用它。这是一个&#39; https://&#39;域