HTTP_ACCEPT_LANGUAGE komisch?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • also wenn du erst 3 tag an php bist solltest du dich vieleicht erst mal mit leichteren sachen beschäftigen ;)

      und wenn du da nur wenn deutsch drin vorkommt Deutschland anzeigen lassen willst veruschs mal so :

      PHP-Quellcode

      1. $string = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
      2. if ( preg_match("/de-DE/", $string)){
      3. echo 'Deutsch';
      4. }Else{
      5. echo 'Eben Kein Deutsch :)';
      6. }
    • Eldoran;180867 schrieb:

      also wenn du erst 3 tag an php bist solltest du dich vieleicht erst mal mit leichteren sachen beschäftigen ;)

      und wenn du da nur wenn deutsch drin vorkommt Deutschland anzeigen lassen willst veruschs mal so :

      PHP-Quellcode

      1. $string = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
      2. if ( preg_match("/de-DE/", $string)){
      3. echo 'Deutsch';
      4. }Else{
      5. echo 'Eben Kein Deutsch :)';
      6. }


      Warum so umständlch? Dan bräuchte man für jedes Land eine preg_match
      funktion. So wäre es viel klüheker:

      PHP-Quellcode

      1. $land = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE'])[0];
      2. switch($land)
      3. {
      4. case 'de-DE': echo "deutsch";
      5. break;
      6. case 'en-EN' echo "englisch";
      7. break;
      8. default: echo "keine der oben genannten sparchen";
      9. break;
      10. }
    • felix;181047 schrieb:

      Warum so umständlch? Dan bräuchte man für jedes Land eine preg_match
      funktion. So wäre es viel klüheker:

      PHP-Quellcode

      1. $land = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE'])[0];
      2. switch($land)
      3. {
      4. case 'de-DE': echo "deutsch";
      5. break;
      6. case 'en-EN' echo "englisch";
      7. break;
      8. default: echo "keine der oben genannten sparchen";
      9. break;
      10. }


      ich habs so umstädnlich gemacht ;) weil ich mri nicht sicher war wie ich die so zerlege das ich die per case abfragen kann ;) sonst hätte ichs türlich auch über switch&case gmacht weil if da eifnach viel zu nervig ist ^^

      allerdings sucht er ja eine andere funktion wie ich denke,

      du versuchst raus zu finden woher der besucher kommt oder ?
    • Das hab ich wo ich die sachen reinschreib :

      PHP-Quellcode

      1. <?php
      2. $browser = $_SERVER['HTTP_USER_AGENT'];
      3. $browser = explode("/",$browser);
      4. $browser = $browser[0];?>
      5. <font color="white"><b>Dein Browser:</b> <?php echo $browser;?><br>
      6. <?php
      7. // IP Adresse ermitteln
      8. $ip_addr = getenv('REMOTE_ADDR');
      9. //Betriebssystem ermitteln
      10. $agent=$_SERVER['HTTP_USER_AGENT'];
      11. $os ="Unbekannt";
      12. if (strstr($agent, "Windows 98")) $os="Windows 98";
      13. elseif (strstr($agent, "NT 4.0")) $os="Windows NT ";
      14. elseif (strstr($agent, "NT 5.1")) $os="Windows XP";
      15. elseif (strstr($agent, "Mac")) $os="Mac OS";
      16. elseif (strstr($agent, "Linux")) $os="Linux";
      17. elseif (strstr($agent, "Unix")) $os="Unix";
      18. elseif (strstr($agent, "NT 6.0")) $os="Windows Vista";
      19. elseif (strstr($agent, "NT 6.1")) $os="Windows Vista";
      20. //Ausgaben
      21. echo "<b>IP:</b> $ip_addr<br>";
      22. echo "<b>BS:</b> $os<br>";
      23. ?> <br /> <?php
      24. $land = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE'])[0];
      25. switch($land)
      26. {
      27. case 'de-DE': echo "deutsch";
      28. break;
      29. case 'en-EN' echo "englisch";
      30. break;
      31. default: echo "keine der oben genannten sparchen";
      32. break;
      33. }
      34. ?> <br />
      Alles anzeigen
    • So bitte schön, so sollte es gehen ...

      PHP-Quellcode

      1. <?php
      2. $browser = $_SERVER['HTTP_USER_AGENT'];
      3. $browser = explode("/",$browser);
      4. $browser = $browser[0];?>
      5. <font color="white"><b>Dein Browser:</b> <?php echo $browser;?><br>
      6. <?php
      7. // IP Adresse ermitteln
      8. $ip_addr = getenv('REMOTE_ADDR');
      9. //Betriebssystem ermitteln
      10. $agent=$_SERVER['HTTP_USER_AGENT'];
      11. $os ="Unbekannt";
      12. if (strstr($agent, "Windows 98")) $os="Windows 98";
      13. elseif (strstr($agent, "NT 4.0")) $os="Windows NT ";
      14. elseif (strstr($agent, "NT 5.1")) $os="Windows XP";
      15. elseif (strstr($agent, "Mac")) $os="Mac OS";
      16. elseif (strstr($agent, "Linux")) $os="Linux";
      17. elseif (strstr($agent, "Unix")) $os="Unix";
      18. elseif (strstr($agent, "NT 6.0")) $os="Windows Vista";
      19. elseif (strstr($agent, "NT 6.1")) $os="Windows Vista";
      20. //Ausgaben
      21. echo "<b>IP:</b> $ip_addr<br>";
      22. echo "<b>BS:</b> $os<br>";
      23. ?> <br /> <?php
      24. $lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      25. switch($land)
      26. {
      27. case 'de-DE': echo "deutsch";
      28. break;
      29. case 'en-EN': echo "englisch";
      30. break;
      31. default: echo "keine der oben genannten sparchen";
      32. break;
      33. }
      34. ?> <br />
      Alles anzeigen
    • Aber wenn man schon schreibt dann bitte auch so das es ordentlich eingerückt ist

      das kann man ja sonst net lesen :D

      PHP-Quellcode

      1. switch($land)
      2. {
      3. case 'de-DE':
      4. echo "deutsch";
      5. break;
      6. case 'en-EN':
      7. echo "englisch";
      8. break;
      9. default:
      10. echo "keine der oben genannten sparchen";
      11. break;
      12. }
      Alles anzeigen
    • ulle;181479 schrieb:

      Aber wenn man schon schreibt dann bitte auch so das es ordentlich eingerückt ist

      das kann man ja sonst net lesen :D

      PHP-Quellcode

      1. switch($land)
      2. {
      3. case 'de-DE':
      4. echo "deutsch";
      5. break;
      6. case 'en-EN':
      7. echo "englisch";
      8. break;
      9. default:
      10. echo "keine der oben genannten sparchen";
      11. break;
      12. }
      Alles anzeigen



      joa =D

      und wenns wirklich die herkunft des besuchers anzeigen soll funktioniert das damit nicht oO weil de-DE und en-EN vorkommen werden in alle euren browsern ^^
    • und wenns wirklich die herkunft des besuchers anzeigen soll funktioniert das damit nicht oO weil de-DE und en-EN vorkommen werden in alle euren browsern ^^

      Haut mich, wenn meine Aussage nicht stimmen soll, ich habe es aber so in Erinnerung, dass die Sprachen geordnet sind. Zuerst kommt die, die der Nutzer am Meisten wünscht.

      Zum Fehler:

      PHP-Quellcode

      1. $lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      2. switch($land)

      wird zu

      PHP-Quellcode

      1. $lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      2. switch($land[0])


      Solche Fehler könntest du aber auch ganz einfach selber finden, indem du dir die entsprechende Variable (in diesem Fall also $land) mit var_dump() ausgibst.
    • TriLight;181854 schrieb:

      Haut mich, wenn meine Aussage nicht stimmen soll, ich habe es aber so in Erinnerung, dass die Sprachen geordnet sind. Zuerst kommt die, die der Nutzer am Meisten wünscht.

      Zum Fehler:

      PHP-Quellcode

      1. $lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      2. switch($land)
      wird zu

      PHP-Quellcode

      1. $lang = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      2. switch($land[0])
      Solche Fehler könntest du aber auch ganz einfach selber finden, indem du dir die entsprechende Variable (in diesem Fall also $land) mit var_dump() ausgibst.


      will dich ja jetzt nicht ärgern oder so ne ...

      aaaaaber, mit dienem skript wirds garnicht tun ....

      allerdings hast du recht es muss die 1 position des arrays abgefragt werden.

      allerdings auch von der richtigen variable oO

      wenn du in $lang alles speicherrst wird dir eine case ($land[0]) nicht mehr bringen alls das was bis jetzt da stand.
      also wenn schon dann so :

      PHP-Quellcode

      1. $land = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
      2. switch($land[0])