PHP检查网址并打印默认参数

时间:2018-06-21 09:53:46

标签: php

我对这样的多语言系统具有网址结构:

默认语言,例如:en(不显示/检测网址中的短语言)

localhost/cms

localhost/cms/article/slug/etc...

以及另一种语言,例如:

localhost/cms/fr

localhost/cms/fr/article/slug/etc...

我的想法:

  1. 为“我的应用”定义可用语言的列表,
  2. 定义我在以下情况下使用的默认语言:  一种。没有提供任何语言(localhost/cms/users),  b。提供的语言未知(localhost/cms/fr/users)。
  3. 在我的代码中,获取当前的语言(例如:en)和routableURI, 没有任何语言的URI(例如:cms / users)

我有此代码:

function urlss(){

    $uri = $_SERVER['REQUEST_URI'];

    $languages = ['en', 'fr', 'es', 'de'];

    // this is my default language
    $defaultLang = 'en';

    // $currentLang is the language I'll use to show the contents
    $currentLang = $defaultLang;

    $uri = ltrim(rawurldecode($uri), '/');
    $parts = explode('/', $uri);

    if( ! empty($parts) && in_array(strtolower($parts[0]), $languages)) {
        $currentLang = array_shift($parts);
    }

    $routableUri = implode('/', $parts);

return $routableUri;

} 

我的代码输出默认语言:(错误输出)并且不起作用

检查:localhost/cms/localhost/cms/users/

输出为:cms/cms/users/

另一种语言的输出:(true输出)工作为true

检查:localhost/cms/fr/输出为cms/fr/localhost/cms/fr/users/输出为:cms/fr/users/

如何在不像这样在网址中添加/检测短语言名称的情况下打印默认语言?!

检查:localhost/cms输出为:cms/en或检查localhost/cms/users/输出为:cms/en/users/

0 个答案:

没有答案