Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改语言目录而不重定向到索引页_Php_File_Chdir - Fatal编程技术网

Php 更改语言目录而不重定向到索引页

Php 更改语言目录而不重定向到索引页,php,file,chdir,Php,File,Chdir,我有三种语言的网站: www.mysite.com/it/FILES www.mysite.com/de/FILES www.mysite.com/fr/FILES 在网站的标题上,我有三个链接,每种语言一个。 每个链接重定向到 /language/index.php 我想将用户重定向到他正在观看的当前页面,但使用的是新语言 我试过了 __FILE__ 或 但我没有做到 谢谢大家! 在加载页面中尝试以下操作: $prefix = $_SERVER['HTTP_HOST']; $fil

我有三种语言的网站:

 www.mysite.com/it/FILES
 www.mysite.com/de/FILES
 www.mysite.com/fr/FILES
在网站的标题上,我有三个链接,每种语言一个。 每个链接重定向到

/language/index.php
我想将用户重定向到他正在观看的当前页面,但使用的是新语言

我试过了

__FILE__

但我没有做到


谢谢大家!

在加载页面中尝试以下操作:

$prefix = $_SERVER['HTTP_HOST'];
$file = explode('/', $_SERVER['PHP_SELF']);
$page = $file[count($file)-1];

if (file_exists($prefix.'/it/'.$page)) {
    http_redirect($prefix.'/it/'.$page); // For Italian
}

if (file_exists($prefix.'/de/'.$page)) {
    http_redirect($prefix.'/de/'.$page); // For German
}

if (file_exists($prefix.'/fr/'.$page)) {
    http_redirect($prefix.'/fr/'.$page); // For French
}
在JavaScript(jQuery单击示例)中,您可以执行以下操作:

var host = document.location.hostname;
var path = window.location.href;
var filename = path.replace(/^.*[\\\/]/, '');

$('.myItalianLink').click(function(){
    window.location.href = host + '/it/' + filename; // For Italian
});

console.log(host + '/it/' + filename);
产出:

http://www.mywebsite.com/it/html4.php

JavaScript方法可能更适合您的需要,因为它在用户交互(您命名的链接)的情况下更具反应性。

所以您建议我使用jquery?对于php解决方案,我遇到了一个问题:重定向总是指向/it/it/page或/de/de/page或/fr/fr/page,因为语言包含在$\u服务器['SCRIPT\u NAME']中,而不是其本身,您也可以使用普通的JavaScript onClick。但您需要用户输入。在客户端这样做更好。您也可以执行新的PHP请求+重定向,但在您的情况下,这是一个可用性问题,不会带来安全风险。@user2120569 my bad;我已经将代码更新为使用
$page=$\u服务器['PHP\u SELF']。此代码将为您提供所有PHP服务器变量:
echo';打印($\u COOKIE);打印(美元环境);打印(美元文件);打印(美元);;打印(邮政美元);打印请求($);打印服务器($);打印(美元会话);回声'
$\u SESSION
可能不存在,有些在不使用时是空的,如
$\u POST
)。与$\u服务器['PHP\u SELF']相同。我想我会使用类似于带str_replace的函数($lang),简单地用/de/或/fr/替换当前url上的/it/或者相反。我已经更新了答案。现在应该可以了。我建议您在这种情况下使用JavaScript。
http://www.mywebsite.com/it/html4.php