如果选择了网站语言,则将语言添加到数组[0],否则留空
Add language to array[0] if website language is selected, otherwise leave empty
我正在使用这个简单的 PHP URL 路由器,我想在我的网站上实现多种语言。
我希望按以下方式发生
英文版:
www.example.com/en/about-us
挪威语版本:
www.example.com/no/about-us
挪威语版本:
www.example.com/about-us
我怎样才能通过推送数组来完成这项工作?
每当我进入该网站时,我都会检查 $routes[1]
中的字符串并检查是否有类似的文件。像这样:
if((($routes[1] == "about-us") && ($routes[1] != "about.php")) && (empty($routes[2]))){
http_response_code(200);
require 'about_us.php
}
问题是,我怎样才能实现 $routes[0]
决定语言而不在 $routes[]
值中创建偏移量?
这是我使用的路由代码:
<?php
function getCurrentUri(){
$basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
$uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
$uri = '/' . trim($uri, '/');
return $uri;
}
$base_url = getCurrentUri();
$routes = array();
$routes = explode('/', $base_url);
foreach($routes as $route)
{
if(trim($route) != '');
}
?>
这是我从var_dump()
那里得到的
array(3) { [0]=> string(0) "" [1]=> string(2) "en" [2]=> string(8) "services" }
这是我在 URL
中选择语言值时理想情况下所需要的
array(2) { [0]=> string(2) "en" [1]=> string(8) "services" }
当 URL
中未设置语言时,这就是我需要的
array(2) { [0]=> string(0) "" [1]=> string(8) "services" }
经过多年的测试和失败后找到了解决方案。
因为我 $routes[0]
一直是空的,所以我可以使用 array_splice()
删除第一个元素,并重新索引数组。
这是它的样子:
if($routes[1] === "en"){
array_splice($routes,0,1);
}
我正在使用这个简单的 PHP URL 路由器,我想在我的网站上实现多种语言。
我希望按以下方式发生
英文版:
www.example.com/en/about-us
挪威语版本:
www.example.com/no/about-us
挪威语版本:
www.example.com/about-us
我怎样才能通过推送数组来完成这项工作?
每当我进入该网站时,我都会检查 $routes[1]
中的字符串并检查是否有类似的文件。像这样:
if((($routes[1] == "about-us") && ($routes[1] != "about.php")) && (empty($routes[2]))){
http_response_code(200);
require 'about_us.php
}
问题是,我怎样才能实现 $routes[0]
决定语言而不在 $routes[]
值中创建偏移量?
这是我使用的路由代码:
<?php
function getCurrentUri(){
$basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
$uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?'));
$uri = '/' . trim($uri, '/');
return $uri;
}
$base_url = getCurrentUri();
$routes = array();
$routes = explode('/', $base_url);
foreach($routes as $route)
{
if(trim($route) != '');
}
?>
这是我从var_dump()
array(3) { [0]=> string(0) "" [1]=> string(2) "en" [2]=> string(8) "services" }
这是我在 URL
中选择语言值时理想情况下所需要的array(2) { [0]=> string(2) "en" [1]=> string(8) "services" }
当 URL
中未设置语言时,这就是我需要的array(2) { [0]=> string(0) "" [1]=> string(8) "services" }
经过多年的测试和失败后找到了解决方案。
因为我 $routes[0]
一直是空的,所以我可以使用 array_splice()
删除第一个元素,并重新索引数组。
这是它的样子:
if($routes[1] === "en"){
array_splice($routes,0,1);
}