私は 3 つの言語で作成された Web サイトを持っていますが、(おそらく) 拡張される予定です。そこで、ウェブサイトの言語を挿入するデータベースにテーブルを作成しました。
index.php としてスクリプトがあります。検出された URI が「/」の場合、スクリプトは /language/index.php にリダイレクトします。
HTTP_ACCEPT_LANGUAGE に基づいて動的にリダイレクトするスクリプトが必要です。私の問題は、私が作成した次のスクリプトが最初の foreach 実行でのみ機能することです。
$abbr = $link->query("SELECT abbr AS langs FROM LANGS");
while($langs_db = mysqli_fetch_array($abbr)){
$site_langs[] = $langs_db['langs'];
}
$client_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
foreach($site_langs as $lang){
switch($client_lang){
case $client_lang == $lang:
header("location: http://www.mysite.com/$lang/index.php");
break;
default:
header("location: http://www.mysite.com/$lang/index.php");
break;
}
}
私は次のような解決策を考えました:
case $client_lang == $lang:
$find "location: http://www.mysite.com/$lang/index.php";
break;
default:
$not_find = "location: http://www.mysite.com/$lang/index.php";
break;
その後:
if($find != ''){
header($find);
}else{
header(not_find);
}
しかし、これが良いアイデアかどうかはわかりません...
ありがとうございました!