我使用Codeigniter来创建一个多语言网站,一切工作正常,但是当我尝试使用Luis的“替代语言助手”时,我遇到了问题。这个辅助使用正则表达式用新的替换当前的语言:Codeigniter和preg_replace
$new_uri = preg_replace('/^'.$actual_lang.'/', $lang, $uri);
的问题是,我有一个这样的URL:http://www.example.com/en/language/english/
,我想只替换第一个“恩”不改变单词“英文”。我试图使用preg_replace
的限制:
$new_uri = preg_replace('/^'.$actual_lang.'/', $lang, $uri, 1);
但这不适用于我。有任何想法吗?
问题中给出的URL仍然与该正则表达式匹配。 – 2010-08-17 19:04:05
它仍然会匹配,但只有第一个'en'部分。后面的英文/不匹配(因此不会被替换)... – ircmaxell 2010-08-17 19:05:20
其实,我说得太快了。该URL根本不会匹配,因为该URL不以en开头。然而,如果没有'^'锚点,'http:// www.example.com/en/language/en /'会匹配两次。 – 2010-08-17 19:09:33