2

言語を変更しようとしていますが、現在のページにとどまります: つまり:

www.myurl.com/english/aboutus.php

www.myurl.com/german/aboutus.php

www.myurl.com/french/aboutus.php

したがって、言語ディレクトリのみが変更されます。私は次のものを持っていますが、それを動作させることができません:

<?php 
$full_url = $_SERVER['FULL_URL'] ;  

$temparray = explode(".com/",$full_url,2); 

$englishtemp = $temparray[0] . ".com/english/" . $temparray[1]; 
$englishlink = "<a href=$englishtemp><img src=../images/english-flag.jpg></a>"; 

echo $englishlink; 
?>

「/french/aboutus.php」から「/english」に変更する URL を取得しますが、「aboutus.php」というページ名を覚えておらず、インデックス ページに戻ります。

誰でも助けてもらえますか?

4

2 に答える 2

2

現在のページに使用basename($_SERVER['PHP_SELF'])します。

$englishtemp = "/english/" . basename($_SERVER['PHP_SELF']); 
$englishlink = "<a href=$englishtemp><img src=../images/english-flag.jpg></a>";
echo $englishlink;

$_SERVER に関する PHP ドキュメントを参照してください。

于 2013-03-14T16:14:08.343 に答える
0

代わりにこれを試してください。現在選択されている言語を除くすべての言語のリンクが生成されます:)

<?php
$full_url = $_SERVER['REQUEST_URI']; //select full url without the domain name
$languages = array('english', 'french', 'german'); //array of all supported languages

$url_bits = explode('/', $full_url); //divide url into bits by /
$current_language = $url_bits[1]; //current language is held in the second item of the array

//find current language in the array and remove it so we wouldn't have to display it
unset($languages[array_search($current_language, $languages)]);

$links = '';

foreach ($languages as $language) {
    //generate links with images for the rest of the languages
    $links .= '<a href="/' . $language . '/' . $url_bits[2] . '"><img src="../images/' . $language . '-flag.jpg" title="'.ucfirst($language).'" /></a>';
}

echo $links;
?>
于 2013-03-14T16:25:25.290 に答える