In Abhängigkeit von Domain-Namen unterschiedlichen Text zurückgeben?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • In Abhängigkeit von Domain-Namen unterschiedlichen Text zurückgeben?

    Hallo,
    möchte eine Funktion bauen, die in Abhängigkeit meiner Domain
    einen unterschiedlichen Text zurückgibt.

    Ich wollte es mit einem assoziativen Array probieren,
    aber wahrscheinlich darf da kein . im Schlüssel sein.
    Geht jedenfalls nicht:




    $MeinTextArray = array(
    'meine-domain.com' => 'Mein Text 1',
    'meine-domain.eu' => 'Mein Text 2',
    'meine-domain.de' => 'Mein Text 3'
    );


    function ReturnMyText() {
    $MyDomain = GetEnv("SERVER_NAME");
    $NewTitle = $MeinTextArray[$MyDomain]; //hier wird "" zurückgegeben
    return $NewTitle;
    }


    Wie könnte ich es sonst noch elegant lösen,
    so dass die Texte zu den Domains hübsch konfiguriert werden können.
    Eine Lösung mit If else gefällt mir nicht wirklich.
    Ich möchte die Text-Zuordnungen später auch separat in einer Art Config-Datei auslagern. Daher wäre so ein Array oder sowas schon hübsch.

    Grüße
    Zuletzt geändert von Jonny2004; 22.10.2009, 16:09.

  • #2
    Hallo,

    tausch mal
    PHP-Code:
    GetEnv("SERVER_NAME"
    durch
    PHP-Code:
    $_SERVER["SERVER_NAME"
    aus und nimm nur Kleinbuchstaben für die Array-Schlüssel.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von Jonny2004 Beitrag anzeigen
      PHP-Code:
          $NewTitle $MeinTextArray[$MyDomain]; //hier wird "" zurückgegeben 
      Nein, da würde eine Meldung über den nicht definierten Array-Index ausgegeben - wenn du denn das error_reporting vernünftig auf E_ALL eingestellt hättest. Also mach das bitte.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        @AmicaNoctis
        Was ist der Unterschied?
        Bei beiden kommt das selbe zurück (habs mit echo mal ausgegeben).

        Ja, ich verwende in Wirklichkeit nur Kleinbuchstaben, habe das hier im Beispiel
        nur dummerweise mit Großbuchstaben gepostet.


        @wahsaga
        Danke, kann ich mal machen.
        Ist aber im Moment nicht mein Problem.

        Kommentar


        • #5
          Zitat von Jonny2004 Beitrag anzeigen
          Danke, kann ich mal machen.
          Ist aber im Moment nicht mein Problem.
          Machst du bitte, vor dem Stellen weiterer Fragen hier.

          Denn es ist Teil deines Problems - PHP hätte dich gerne auf das, was du bei der Fehlersuche komplett übersehen hast (nämlich, dass gar kein Eintrag im Array unter dem Index, den du angibst, vorhanden ist), hingewiesen. Aber du lässt es bisher nicht.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Danke - gelöst

            Problem gelöst:
            Ich hatte das Array ausserhalb meiner Funktion definiert.
            Insofern gabs mein Array hier garnicht.
            Ok - Danke!

            Viele Grüße

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              ... tausch mal
              PHP-Code:
              GetEnv("SERVER_NAME"
              durch
              PHP-Code:
              $_SERVER["SERVER_NAME"
              aus ...
              Ich würde auf $_SERVER['SERVER_NAME'] nur zurückgreifen, wenn $_SERVER['HTTP_HOST'] nicht existiert, wenn das Script auch bei allen Massenhostern laufen soll:

              PHP-Code:
              function title_from_hostname($fallback 'was anderes') {
                  static 
              $hosts = array (
                     
              'www.example.org' => 'example.org',
                     
              'www.example.com' => 'example.com',
                     
              'subdomain.example.com' => 'sub',
                  );
                  
              $host strtolower(
                      isset(
              $_SERVER['HTTP_HOST'][0]) 
                          ? 
              $_SERVER['HTTP_HOST']
                          : 
              $_SERVER['SERVER_NAME']
                  );
                  
                  return isset(
              $hosts[$host]) ? $hosts[$host] : $fallback

              Das assoziative Array $hosts könnte man natürlich auch auslagern.
              Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

              Kommentar

              Lädt...
              X