我有一系列的网址如下:
http://www.somesite.com/de/page
http://www.somesite.com/de/another
http://www.somesite.com/de/page/something
http://www.somesite.com/de/page/bar
我需要搜索文本块并提取语言并使用正则表达式:
/(de|en|jp)/
我正在尝试通过preg_replace
找到并替换,并包含正斜杠:
/de/
/en/
/jp/
但是,这不起作用,也不包括斜杠。我已尝试使用\
,\\
转义斜杠。我已经尝试将针放在preg_quote
中,但这会打破交替。
我觉得我在这里错过了一些非常简单的东西!
修改
全功能电话:
preg_replace("/(de|en|jp)/", "/".$newLang."/", $url);
-
(标记magento和wordpress,因为我试图解决当两个CMS都是多语言时统一导航菜单的问题)
答案 0 :(得分:6)
您不必使用斜杠作为分隔符,但必须有一些分隔符。试试这个:
if( preg_match("(/(de|en|jp)/)",$url,$m)) {
$lanuage = $m[1];
}
答案 1 :(得分:0)
您可以使用其他分隔符,例如%。
if (preg_match('%/(de|en|jp)/%', $url, $match)) {
$lang = $match[1];
}
这应该对你有帮助,只需修改你拥有的东西:)。