发新话题
打印

[辅助方法 Helper] [1.6.1]CI重写url_helper 中url_title 替换 西方语言特殊字符补丁

[1.6.1]CI重写url_helper 中url_title 替换 西方语言特殊字符补丁

因为欧洲 字符中有很多特殊字符(非英文)如 上面带一撇的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));
}
}
?>
上次发了一次,好像数据丢咯~~再不上~~
本帖最近评分记录
  • Hex 威望 +5 原创内容 2008-3-7 09:28
CIAO,CI...

TOP

上次是因为服务器升级造成的丢失,我向你表示歉意。
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

太感谢了,方便大家了啊
程序人生,你我相伴!

TOP

发新话题