【问题标题】:Regex Help for Codeigniter URL HelperCodeigniter URL Helper 的正则表达式帮助
【发布时间】:2014-11-30 19:38:50
【问题描述】:

在 CI url_title() 函数中,它从字符串中删除点,而我想用 $seperator 替换。这是url_title() 的正则表达式替换数组。

$trans = array(
  '&.+?;'                 => '',
  '[^a-z0-9 _-]'          => '',
  '\s+'                   => $separator,
  '('.$q_separator.')+'   => $separator
);

$str = strip_tags($str);

foreach ($trans as $key => $val)
{
   $str = preg_replace("#".$key."#i", $val, $str);
}

如何更改$trans 数组,以便它可以用$separator 替换“.”、“%”、“+”字符。

另一个是“%20”返回空。如何预防?

感谢您的帮助。

【问题讨论】:

    标签: php regex codeigniter codeigniter-2 slug


    【解决方案1】:

    试试这个:

    $trans = array(
      '&.+?;'                 => '',
      '[^a-z0-9 _-]'          => '',
      '\s+'                   => $separator,
      '('.$q_separator.')+'   => $separator,
      '\.'                    => $separator,
      '\+'                    => $separator,
      '%'                     => $separator
    );
    

    【讨论】:

    • 谢谢。请注意,当我们将 '\.' 键放在 '&.+?; 键之前时,它会起作用。但是,当字符串以'%20 improvement 开头或类似20%difference 的字符串变为20fference 时,它仍然会失败。
    • 你的分隔符是什么?
    • 我的分隔符是破折号'-'。
    • 原来 %20 消失是因为 CI 的 xss_clean() 而不是函数。
    猜你喜欢
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多