| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

22-10-2009, 15:27
|
|
Jonny2004
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Ort: Munich
Beiträge: 7
|
|
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
Geändert von Jonny2004 (22-10-2009 um 17:09 Uhr)
|

22-10-2009, 15:37
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
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
|

22-10-2009, 16:37
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Jonny2004
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.
|

22-10-2009, 17:08
|
|
Jonny2004
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Ort: Munich
Beiträge: 7
|
|
@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.
|

22-10-2009, 17:23
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Jonny2004
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.
|

22-10-2009, 17:25
|
|
Jonny2004
Registrierter Benutzer
|
|
Registriert seit: Jan 2004
Ort: Munich
Beiträge: 7
|
|
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
|

22-10-2009, 20:07
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Zitat:
Zitat von AmicaNoctis
... 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.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|