Maresa P.: Subdomain aus Domain auslesen

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

  1. Hi,

    Wie muss der reguläre Ausdruck lauten?

    was hast Du versucht, woran ist es gescheitert?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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

      1. 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.

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. 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

          1. 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

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. 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

              1. 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

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
  2. 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 auslesen

    Den 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