<?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解决方案,它是一个answer in this post。谢谢你的分享。但我有一个问题;
在我的网站中,我使用的是土耳其语,土耳其语中有7个非英文字母的alphaphet.so当脚本复制地址栏breadcrump只显示英文兼容的字母,不幸的是不是土耳其字母。
问题: 使用此脚本可以创建一个变量,允许在breadcrump菜单中调整和显示创建的链接标题
例如:
地址栏 =
http://www.mamaia.com/tr/urunler/cocuk-uretimi-alcilar
Breadcrump =(应该是)
Ana Sayfa&gt; Tr> Ürünler&gt; ÇocukÜretimiAlçılar
有什么建议吗?
答案 0 :(得分:1)
1)在<head></head>
标签内设置内容编码
<meta charset="utf-8">
2)将其设置在顶部
setlocale(LC_ALL, 'tr_TR.UTF-8')
3)如果仍有问题,请尝试
echo utf8_encode($your_breadcrumb);
答案 1 :(得分:0)
这是PHP中的两个步骤,它是一种带有二进制字符串的语言:
获得正确的输入:浏览器使用UTF-8对HTTP请求的请求行中URI的字节进行百分比编码。在PHP引擎解码URI之后,脚本中有一串UTF-8字符,并且因为UTF8是可变长度编码,所以不能使用普通字符串函数(str_replace
,{{1}操纵输入时。请改用multibyte versions,并始终提供UTF-8作为编码。
获得正确的输出。您必须选择适合土耳其的编码:UTF-8是一个选项,但CP1254也适用。在其他任何内容之前输出编码头,然后确保文本的静态部分使用相同的方案进行编码,最后将动态片段从UTF-8转换为目标编码。请注意,链接的ucfirst
属性不能包含非ascii字符,因此您必须自己href
部分。
我在线gist,使用rawurlencode
处理每个请求只有一个文件。