<?php
function breadcrumbs($home = 'Ana Sayfa') {
//Use RDFa breadcrumb, can also be used for microformats etc.
$bc = '';
$isaret = ' »';
//Get the website:
$site = 'http://'.$_SERVER['HTTP_HOST'];
//Get all vars en skip the empty ones
$crumbs = array_filter( explode("/",$_SERVER["REQUEST_URI"]) );
//Create the home breadcrumb
$bc .= '<li><a href="'.$site.'" rel="v:url" property="v:title">'.$home.''.$isaret.'</a></li>';
//Count all not empty breadcrumbs
$nm = count($crumbs);
$i = 1;
//Loop the crumbs
foreach($crumbs as $crumb){
$link = ucfirst( str_replace( array(".php","-","_"), array(""," "," ") ,$crumb) );
$site .= '/'.$crumb;
//Make the next crumb
$bc .= '<li><a href="'.$site.'" rel="v:url" property="v:title">'.$link.''.$isaret.'</a></li>';
$i++;
}
$bc .= '';
//Return the result
return $bc;}
?>
你好
我在我的网站上使用这个伟大的Php动态bredcrump解决方案,这是本文的答案。感谢您的分享。但我有一个问题;
在我的网站上,我使用的是土耳其语,土耳其文的字母表中有7个非英语字母。所以当脚本复制时,地址栏breadcrump只显示英语兼容的字母,不幸的是,没有土耳其音字母。
问题是:有了这个脚本,就有可能创建一个变量,允许在面包屑菜单中调整和显示创建的链接的标题
例如:
地址栏=
http://www.mamaia.com/tr/urunler/cocuk-uretimi-alcilar
面包屑=(应该是)
Ana Sayfa>Tr>Ürünler>ÇocukÜretimi Alçılar
有什么建议吗?
1)在<head></head>
标签内设置内容编码
<meta charset="utf-8">
2) 将此设置在顶部
setlocale(LC_ALL, 'tr_TR.UTF-8')
3) 如果仍然有问题,请尝试
echo utf8_encode($your_breadcrumb);
这是PHP中的一个两步过程,PHP是一种带有二进制字符串的语言:
-
正确输入:浏览器使用UTF-8对HTTP请求的请求行中URI的字节进行百分比编码。PHP引擎解码URI后,您的脚本中有一个UTF-8字符字符串,并且由于UTF8是可变长度编码,因此在处理输入时不能使用纯字符串函数(
str_replace
、ucfirst
)。请改用多字节版本,并始终提供UTF-8作为编码。 -
获得正确的输出。您必须选择适合土耳其的en编码:UTF-8是一个选项,但CP1254也可以。首先输出编码头,然后确保文本的静态部分使用完全相同的方案进行编码,最后将动态片段从UTF-8转换为目标编码。请注意,链接的
href
属性不能包含非ascii字符,因此您必须自己使用rawurlencode
部分。
我在网上发布了一个要点,使用mod_rewrite
用一个文件处理每个请求。