因为欧洲 字符中有很多特殊字符(非英文)如 上面带一撇的e:é 等等(地址栏不完全支持,就像IE7才支持
中文一样),CI自己的
url_title 的时候,把这些字符全部去掉了,严重影响了 google的搜索,嘿嘿,所以,我们必须把他们替换成一般浏览器 地址栏支持的字符。
1. 在application/helper下创建 MY_url_helper.php
2.复制 CI库中的 url_title() 函数 到上面的
文件。(包括if (! function_exists('url_title')) 正个if)
3.添加2 个替换数组(关键,虽然不理解,从公司法国技术部小伙子那问到的)
复制内容到剪贴板PHP 代码:
$str =
strtr($str,
"xA1xAAxBAxBFxC0xC1xC2xC3xC5xC7xC8xC9xCAxCBxCCxCDxCExCFxD0xD1xD2xD3xD4xD5xD8xD9xDAxDBxDDxE0xE1xE2xE3xE5xE7xE8xE9xEAxEBxECxEDxEExEFxF0xF1xF2xF3xF4xF5xF8xF9xFAxFBxFDxFF",
"!ao?AAAAACEEEEIIIIDNOOOOOUUUYaaaaaceeeeiiiidnooooouuuyy");
$str =
strtr($str,
array("xC4"=>
"Ae",
"xC6"=>
"AE",
"xD6"=>
"Oe",
"xDC"=>
"Ue",
"xDE"=>
"TH",
"xDF"=>
"ss",
"xE4"=>
"ae",
"xE6"=>
"ae",
"xF6"=>
"oe",
"xFC"=>
"ue",
"xFE"=>
"th"));
OK.完成。application/helper/MY_url_helper.php正个文件如下
复制内容到剪贴板PHP 代码:
<?php// url_title function with muti-language by lony.if (!
function_exists('url_title')){function url_title
($str,
$separator =
'dash'){ $str =
strtr($str,
"xA1xAAxBAxBFxC0xC1xC2xC3xC5xC7xC8xC9xCAxCBxCCxCDxCExCFxD0xD1xD2xD3xD4xD5xD8xD9xDAxDBxDDxE0xE1xE2xE3xE5xE7xE8xE9xEAxEBxECxEDxEExEFxF0xF1xF2xF3xF4xF5xF8xF9xFAxFBxFDxFF",
"!ao?AAAAACEEEEIIIIDNOOOOOUUUYaaaaaceeeeiiiidnooooouuuyy");
$str =
strtr($str,
array("xC4"=>
"Ae",
"xC6"=>
"AE",
"xD6"=>
"Oe",
"xDC"=>
"Ue",
"xDE"=>
"TH",
"xDF"=>
"ss",
"xE4"=>
"ae",
"xE6"=>
"ae",
"xF6"=>
"oe",
"xFC"=>
"ue",
"xFE"=>
"th"));
if ($separator ==
'dash') { $search =
'_';
$replace =
'-';
} else { $search =
'-';
$replace =
'_';
} $trans =
array( $search =>
$replace,
"s+" =>
$replace,
"[^a-z0-9".
$replace.
"]" =>
'',
$replace.
"+" =>
$replace,
$replace.
"$" =>
'',
"^".
$replace =>
'' );
$str =
strip_tags(strtolower($str));
foreach ($trans as $key =>
$val) { $str =
preg_replace("#".
$key.
"#",
$val,
$str);
} return trim(stripslashes($str));
}}?> 上次发了一次,好像数据丢咯~~再不上~~