使用 PHP 的 preg_replace() 提供基于 URL 字符串中的语言标识符的页面路由

问题描述 投票:0回答:1

我想为我的网站添加一些语言支持,例如 mydomain.com/en/ mydomain.com/fr/ mydomain.com/de/

我想将每个页面重定向到所选语言的等效页面,例如:

mydomain.com/en/contact/
mydomain.com/fr/contact/

如何使用

preg_replace()
做到这一点?

我只想得到像

mydomain.com/(en|fr|de)/contact/
这样的正则表达式? 您能给我正确的正则表达式吗?

这是我的职责:

function ch_lang($lang) {
    $curr_url   = str_replace('//', '/', SITE_URL . $_SERVER['REQUEST_URI']);
    if (isset($_GET['lang'])) {
        $new_url = preg_replace('|/(?:en|fr|de)/|', "/$lang/", $curr_url);
    } else {
        $new_url = str_replace('.local/', '.local' . $lang, $curr_url);
    }
    echo $new_url;
}
php regex routes localization preg-replace
1个回答
2
投票
$link = 'mydomain.com/en/contact';
$lang_link = preg_replace('|/(?:en|fr|de)/|', "/$selected_lang/", $link);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.