Avatar billede dotcom1 Nybegynder
24. juli 2005 - 16:18 Der er 10 kommentarer og
1 løsning

Script virker ikke efter flytning - måske noget med global?

Har dette script som omdanner browsersprog til hele ord, fx. da til dansk, osv. Scriptet har virket fint, men efter flytning fra privat server til b-one virker det ikke mere. Ved ikke så meget om php, men måske er det noget med brugen af 'global'? Kan det reddes?

Scriptet:

<?php
function getCountry() {
  // Call with $land = getCountry();
  // echo "$land"
  global $HTTP_ACCEPT_LANGUAGE;
   
  $countrylist = array(
  "eu" => "Baskisk",
  "bg" => "Bulgarsk",
  "ca" => "Katalansk",
  "cs" => "Tjekkisk",
  "cy" => "Walisisk",
  "en" => "Engelsk",
  "en-us" => "Engelsk-US",
  "en-gb" => "Engelsk-UK",
  "da" => "Dansk",
  "nl" =>"Hollansk",
  "ee" => "Estisk",
  "fi" =>"Finsk",
  "fr" =>"Fransk",
  "fr-ch" =>"Fransk - ch", // French/Swiss
  "fr-ca" =>"Fransk - ca", // French/Canada
  "gl" => "Galisisk",
  "de" =>"Tysk",
  "de-at" =>"Tysk - at", // German/Austria
  "de-ch" =>"Tysk - ch", // German/Switzerland
  "de-de" =>"Tysk", // German/German
  "es" =>"Spansk",
  "hu" => "Ungarsk",
  "is" => "Islandsk",
  "it" => "Italiensk",
  "it-ch" => "Italiensk - ch", // Italian/Switzerland
  "ja" => "Japansk",
  "ko" =>"Koreansk",
  "no" => "Norsk",
  "pl" => "Polsk",
  "pt" =>"Portugisisk",
  "pt-br" => "Portugisisk - br", // Portuguese/Brazil
  "ru" =>"Russisk",
  "sl" =>"Slovakisk",
  "sr" =>"Serbisk",
  "sv" =>"Svensk",
  "tr" =>"Tyrkisk",
  "zh" => "Kinesisk simp.",    // Simplified Chinese
  "zh-cn" => "Kinesisk simp.",
  "zh-tw" => "Kinesisk Trad.");  // Traditional Chinese

    foreach ($countrylist as $key => $value) {
        if ($key == $HTTP_ACCEPT_LANGUAGE) {
            return $value;
        }
        else if($countrylist[$HTTP_ACCEPT_LANGUAGE]){
    return $countrylist[$HTTP_ACCEPT_LANGUAGE];
        } else {
    return $_SERVER['HTTP_ACCEPT_LANGUAGE'];//
        }
    }
}
    $lang = getCountry();
?>

Mvh.
Avatar billede kdjweb Nybegynder
24. juli 2005 - 16:32 #1
jeg tror ikke det er din global, gir den slet ingen fejl?
Avatar billede dotcom1 Nybegynder
24. juli 2005 - 16:40 #2
Det giver ingen fejl, men skriver blot 'da' i stedet for 'dansk' som den plejer...
Avatar billede kdjweb Nybegynder
24. juli 2005 - 16:48 #3
hvad nu hvis du retter den til sådan her
foreach ($countrylist as $key => $value) {
til
foreach ($countrylist as $value => $key) {
Avatar billede dotcom1 Nybegynder
24. juli 2005 - 16:51 #4
Det ændrer ikke noget, desværre...
Avatar billede kdjweb Nybegynder
24. juli 2005 - 16:55 #5
hvad siger den hvis du skriver
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
et sted på din side
Avatar billede dotcom1 Nybegynder
24. juli 2005 - 17:00 #6
Så skriver den 'da'. :-)
Avatar billede kdjweb Nybegynder
24. juli 2005 - 17:24 #7
det siger meget :)

$HTTP_ACCEPT_LANGUAGE = $_SERVER['HTTP_ACCEPT_LANGUAGE'];

<?php
function getCountry() {
  // Call with $land = getCountry();
  // echo "$land"
  global $HTTP_ACCEPT_LANGUAGE;
 
  $countrylist = array(
  "eu" => "Baskisk",
  "bg" => "Bulgarsk",
  "ca" => "Katalansk",
  "cs" => "Tjekkisk",
  "cy" => "Walisisk",
  "en" => "Engelsk",
  "en-us" => "Engelsk-US",
  "en-gb" => "Engelsk-UK",
  "da" => "Dansk",
  "nl" =>"Hollansk",
  "ee" => "Estisk",
  "fi" =>"Finsk",
  "fr" =>"Fransk",
  "fr-ch" =>"Fransk - ch", // French/Swiss
  "fr-ca" =>"Fransk - ca", // French/Canada
  "gl" => "Galisisk",
  "de" =>"Tysk",
  "de-at" =>"Tysk - at", // German/Austria
  "de-ch" =>"Tysk - ch", // German/Switzerland
  "de-de" =>"Tysk", // German/German
  "es" =>"Spansk",
  "hu" => "Ungarsk",
  "is" => "Islandsk",
  "it" => "Italiensk",
  "it-ch" => "Italiensk - ch", // Italian/Switzerland
  "ja" => "Japansk",
  "ko" =>"Koreansk",
  "no" => "Norsk",
  "pl" => "Polsk",
  "pt" =>"Portugisisk",
  "pt-br" => "Portugisisk - br", // Portuguese/Brazil
  "ru" =>"Russisk",
  "sl" =>"Slovakisk",
  "sr" =>"Serbisk",
  "sv" =>"Svensk",
  "tr" =>"Tyrkisk",
  "zh" => "Kinesisk simp.",    // Simplified Chinese
  "zh-cn" => "Kinesisk simp.",
  "zh-tw" => "Kinesisk Trad.");  // Traditional Chinese

    foreach ($countrylist as $key => $value) {
        if ($key == $HTTP_ACCEPT_LANGUAGE) {
            return $value;
        }
        else if($countrylist[$HTTP_ACCEPT_LANGUAGE]){
    return $countrylist[$HTTP_ACCEPT_LANGUAGE];
        } else {
    return $_SERVER['HTTP_ACCEPT_LANGUAGE'];//
        }
    }
}
    $lang = getCountry();
?>
Avatar billede kdjweb Nybegynder
24. juli 2005 - 17:27 #8
der er intet galt med funktionen, problemmet er at globals er til at hente en variabel uden for din funktion. :)
Avatar billede kdjweb Nybegynder
24. juli 2005 - 17:30 #9
$HTTP_ACCEPT_LANGUAGE = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
skal selføgelig være inde under <?php men over funktionen
Avatar billede dotcom1 Nybegynder
24. juli 2005 - 17:42 #10
Det virker! Tak for hjælpen. Læg et svar. Så ved jeg det om global. :-)
Avatar billede kdjweb Nybegynder
24. juli 2005 - 17:49 #11
hehe jeg lærte det faktisk selv idag :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester