Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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
使用语言菜单/post方法进行php url操作_Php_If Statement_Url Rewriting_Switch Statement_Multilingual - Fatal编程技术网

使用语言菜单/post方法进行php url操作

使用语言菜单/post方法进行php url操作,php,if-statement,url-rewriting,switch-statement,multilingual,Php,If Statement,Url Rewriting,Switch Statement,Multilingual,我的网站结构如下: index.php fileA.php fileB.php fileC.php ecc 每个文件都有相关的3个语言文件(英语、德语和意大利语),存储在一个文件夹中。 通过选择菜单,语言正在动态变化: <form name="switch_menu" id="lang" action="" method="post"> <select name="lingua" class="switch" onchange="this.form.submit()">

我的网站结构如下:

index.php

  • fileA.php
  • fileB.php
  • fileC.php
  • ecc
每个文件都有相关的3个语言文件(英语、德语和意大利语),存储在一个文件夹中。 通过选择菜单,语言正在动态变化:

<form name="switch_menu" id="lang" action="" method="post">
<select name="lingua" class="switch" onchange="this.form.submit()">
<option value="lang_it" <?php if($lang == "lang_it"){ echo "selected=\"selected\""; }?>>Italiano</option>
<option value="lang_de" <?php if($lang == "lang_de"){ echo "selected=\"selected\""; }?>>Deutsch</option>
<option value="lang_en" <?php if($lang == "lang_en"){ echo "selected=\"selected\""; }?>>English</option>
</select>
</form>
其中fileA.en.php、fileA.it.php和fileA.de.php是语言内容

是否可以使用一些if语句或类似语句操纵代码的第二部分,从而在url中显示所选语言?否则,搜索引擎将看不到其他语言(意大利语和德语)。 否则我可以添加一些代码来达到这个目的吗


提前感谢您的提示。

为什么不在表单中使用GET而不是POST?这将把
$lang
变量放入URL中,类似于
http://yourdomain.com/fileA.php?lang=it

然后,为了让爬虫更有效地查看不同的语言,可以使用带有lang GET变量的URL创建指向站点的内部链接


另外,请看一看,这是一种更好的实现国际化的方法。

post比get更安全……是否有可能使用$\u post进行此操作?按选择列表可以。好吧,我不同意这一点(我很抱歉)。唯一的区别是,POST没有显示在URL中,但既然在本例中您希望显示它,那么就没有更多的话要说:)GET正是您在本例中所需要的。@JuanXarg如何以最佳方式重写代码的第二部分?从未使用过gettext:-(这是一个大话题。这是一个指导,将引导您完成它。起初它看起来很复杂,但它将在将来为您节省许多时间和头痛。我是根据经验来谈的!
switch($lang){
case 'lang_it': include_once('folder/it/fileA.it.php'); break;
case 'lang_de':  include_once('folder/de/fileA.de.php'); break;
case 'lang_en':  include_once('folder/en/fileA.en.php'); break;
default: include_once('folder/en/fileA.en.php'); break;
 }