PHP从URL路径中删除第一个参数

时间:2019-03-02 08:21:59

标签: php

我有多语言系统,需要从url中删除简短的默认语言环境前缀。我需要检查会话是否获得前缀:

 <activity
    android:name=".MainActivity"
    android:hardwareAccelerated="true"  
    >
    ...........
    ...........
 </activity>

正在执行($ url),我看到以下输出:

if(Session::get('prefix')) {
    $url = urldecode(http_build_query($_GET, '', '&'));
} else {
    $url = ''; //This Line
}

echo $url;
//output is: url=fa/account/login

现在,如果未检测到会话前缀,则需要从网址路径中删除en/ en/account/login en/account/dashboard

en

什么是最好的方法?

2 个答案:

答案 0 :(得分:1)

您可以创建所有语言的数组。然后,您可以使用explode并使用正斜杠作为分隔符。

检查第一项是否在包含语言的数组中。如果是这样,请使用例如array_shiftchild: IconTheme( .... child: Icon中删除第一项,然后使用implode重新组装字符串。

$parts

Php demo

答案 1 :(得分:0)

您可以在config / app.php中使用应用程序实现的所有语言定义一个数组。 例如,您可以将此行添加到config / app.php

$languages  = ['en','fa'];

现在您可以像这样更改代码:

$url = urldecode(http_build_query($_GET, '', '&'));
if(Session::get('prefix') == null) 
    $url = preg_replace("/^".implode(Config::get("app.languages"),"|")."\//",'',$url);