Subdomain aus Domain auslesen
Maresa P.
- php
Hallo liebes Forum,
auf eine Php-Datei (datei1.php) wird mittels mehrerer URLs zugegriffen:
Bspl.:
http://foo.domain.de/datei1.php
http://bar.domain.de/datei1.php
http://irgend.domain.de/datei1.php
http://was.domain.de/datei1.php
Ich möchte nun in der PHP-Datei mittels PHP...
... 1. auslesen, über welchen URL auf die Seite zugegriffen wurde
... 2. Aus dem URL die Subdomain auslesen
Den ersten Punkt löse ich mittels vordefinierter Server Variable:
$domain = $_SERVER["SCRIPT_URI"];
Die Subdomain kann ich dann per regulärem Ausdruck aus der Domain auslesen.
Wie muss der reguläre Ausdruck lauten?
Vielen Dank
Maresa
Hi,
Wie muss der reguläre Ausdruck lauten?
was hast Du versucht, woran ist es gescheitert?
Cheatah
Hi,
Hallo
Wie muss der reguläre Ausdruck lauten?
was hast Du versucht, woran ist es gescheitert?
Ich habe mir http://www.dclp-faq.de/ch/ch-regexp.html durchgelesen, checke das Ganze aber nicht.
Cheatah
Gruß
Maresa
Hi,
Ich habe mir http://www.dclp-faq.de/ch/ch-regexp.html durchgelesen, checke das Ganze aber nicht.
das ist schon mal ein sehr guter Anfang. Bevor Du Regular Expressions[1] einsetzt, solltest Du aber zumindest dessen Grundlagen verstanden haben - und daraus folgend in der Lage sein, das Problem selbst zu lösen. Wenn Du hierbei auf Detailschwierigkeiten stößt (oder Verständnisprobleme bei einzelnen Punkten hast), helfe ich Dir gerne; schaffst Du jedoch nicht mal den Ansatz, halte ich es für deutlich zu gefährlich, Dir zu helfen.
Cheatah
[1] Dies gilt übrigens für _alle_ Techniken, nicht nur für RegExp.
Hi,
Hallo,
[...] helfe ich Dir gerne; schaffst Du jedoch nicht mal den Ansatz, halte ich es für deutlich zu gefährlich, Dir zu helfen.
Ich habs nun mal so versucht:
Beispiel:
http://foo.domain.com/seite1.php
$domain = $_SERVER["HTTP_HOST"];
-> ergibt foo.domain.com
nun möchte ich alles was zwischen dem Anfang des Strings ^ und einem Punkt . steht, extrahieren:
preg_match_all("^(*).", $domain, $a);
echo $a[0];
-> ergibt nichts.
Was mache ich falsch?
Cheatah
Maresa
Hi,
$domain = $_SERVER["HTTP_HOST"];
-> ergibt foo.domain.com
Du solltest Svens Tipp noch weiter folgen. Es gibt hier keinen Grund für teure Regular Expressions.
preg_match_all("^(*).", $domain, $a);
"*", "+" und "{a,b}" beziehen sich auf ein vorangestelltes Pattern, welches Du hier nicht angegeben hast.
-> ergibt nichts.
Sollte eine Fehlermeldung ergeben ...
Cheatah
Hi,
Hi!
Du solltest Svens Tipp noch weiter folgen. Es gibt hier keinen Grund für teure Regular Expressions.
ich habs nun so gelöst:
$subdomain = substr($_SERVER["HTTP_HOST"],0,strpos($_SERVER["HTTP_HOST"], '.'));
Cheatah
Maresa
Hello,
$subdomain = substr($_SERVER["HTTP_HOST"],0,strpos($_SERVER["HTTP_HOST"], '.'));
oder geht es auch so?
list($sub,$dom,$tld) = explode(".",$_SERVER["HTTP_HOST"]);
Was ist dann, wenn es keine drei Teile sind?
War ja auch nur eine Idee ;-)
Liebe Grüße aus http://www.braunschweig.de
Tom
Moin!
Ich möchte nun in der PHP-Datei mittels PHP...
... 1. auslesen, über welchen URL auf die Seite zugegriffen wurde
... 2. Aus dem URL die Subdomain auslesenDen ersten Punkt löse ich mittels vordefinierter Server Variable:
$domain = $_SERVER["SCRIPT_URI"];
Was hälst du von $_SERVER["HTTP_HOST"]?
Die Subdomain kann ich dann per regulärem Ausdruck aus der Domain auslesen.
Das ist dann nicht mehr so notwendig. Außerdem: Man kann auch ohne reguläre Ausdrücke programmieren - insbesondere dann, wenn die Aufgabenstellung sehr simpel ist bzw. simpel gelöst werden kann - hier beispielsweise mit "Schneide hinten vom String X Zeichen (die Länge der Domain) an, damit nur die Subdomain übrigbleibt.
- Sven Rautenberg