php - php从url路径中删除第一个参数
问题描述
我有多语言系统,需要从 url 中删除短的默认语言环境前缀。我需要检查会话是否获取前缀:
if(Session::get('prefix')) {
$url = urldecode(http_build_query($_GET, '', '&'));
} else {
$url = ''; //This Line
}
echo $url;
//output is: url=fa/account/login
现在在行动 ($url) 我看到这个输出:
en/
en/account/login
en/account/dashboard
en
现在,如果没有检测到这样的会话前缀,我需要从 url 路径中删除。
account/login
account/dashboard
什么是最好的方法?!
解决方案
您可以创建所有语言的数组。然后您可以使用explode并使用正斜杠作为分隔符。
检查第一项是否在具有语言的数组中。如果是,则从$parts
使用例如array_shift中删除第一项,然后使用 implode 重新组合字符串。
$langs = ["en", "fa"];
$string = "fa/account/login";
$parts = explode('/', $string);
if (in_array($parts[0], $langs)) {
array_shift($parts);
}
echo implode('/', $parts) . PHP_EOL; //account/login