Ankündigung

Einklappen
Keine Ankündigung bisher.

Subdomain aus String entfernen

Einklappen

Neue Werbung 2019

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

  • Subdomain aus String entfernen

    Guten Tag die Herren (und Damen),

    mal wieder habe ich ein kleines Logikproblem, und komme selbst nach längerer Suche in Google und diesem Forum hier nicht auf eine zufriedenstelle Lösung.

    Ich möchte aus einem übergebenen String (Hostadresse) die Subdomain entfernen, sofern eine vorhanden ist.

    Das heißt im Beispiel:

    - aus dem String "reifen.test.de" soll "test.de" werden.
    - am String "konzentrieren.com" soll nichts verändert werden, da keine Subdomain vorhanden.

    Mit strpos() und explode komme ich leider absolut nicht weiter, denn falls ein String ohne Subdomain übergeben wird, darf ja nicht der Stringteil
    vor dem .com bzw. .de entfernt werden. Müsste also zunächst geprüft werden, ob der String ZWEI Punkte enthält und falls ja, alles vor dem ersten Punkt entfernen? Ist das zu kompliziert gedacht?!

    Vielleicht kennt oder hat jemand schon eine praktikable Lösung.

    Grüße & Danke
    Klaus

  • #2
    Vielleicht kennt oder hat jemand schon eine praktikable Lösung.
    Wie sieht denn Deine aus? Code?


    Inserate, Konzepte und Meinungsumfragen

    Kommentar


    • #3
      Dies könntest du z.B. mittels parse_url() machen.
      Hierzu findest du in der PHP-Doku auch ein paar nette Bespiele und Code-Schnipsel.

      Interessant für dich wäre z.B. dieser Code:

      http://www.php.net/manual/de/functio...-url.php#83828

      Kommentar


      • #4
        Zitat von CPCoder Beitrag anzeigen
        Dies könntest du z.B. mittels parse_url() machen.
        Hierzu findest du in der PHP-Doku auch ein paar nette Bespiele und Code-Schnipsel.

        Interessant für dich wäre z.B. dieser Code:

        http://www.php.net/manual/de/functio...-url.php#83828
        Danke! Das versuche ich direkt einmal

        Kommentar


        • #5
          Zitat von kl_welf Beitrag anzeigen
          ... Ich möchte aus einem übergebenen String (Hostadresse) die Subdomain entfernen, sofern eine vorhanden ist.

          Das heißt im Beispiel:

          - aus dem String "reifen.test.de" soll "test.de" werden.
          - am String "konzentrieren.com" soll nichts verändert werden, da keine Subdomain vorhanden.
          Die Aufgabe ist aus mehreren Gründen nicht ganz trivial:

          0.) Nicht alle gültigen Host-Namen enthalten Punkte, bspw. "localhost". Andererseits können sie auch mehr Punkte haben, als du erwartest, wie bspw. "example.com.".

          1.) IP-Adressen können gültige Host-Namen darstellen. Zumindest bei IPv4-Adressen gibts Punkte als Trennzeichen. Sie müssen daher vor der String-Teilung erkannt und ausgeschlossen werden.

          2.) Was eine Subdomain ist, definiert der jeweilige Registrar:
          foo.example.com ist eine "Subdomain".
          google.co.uk dagegen nicht.
          Guckst du: Learn more about the Public Suffix List

          Ohne Problem 2 zu beachten, würde es etwa so gehen:

          PHP-Code:
          // nominated for most ludicrous function-name ever
          function host_restricted_to_2ndlevel_domain(
              
          $host /// host-name
          ) {
              if (
          is_int(ip2long($host))) {
                  return 
          $host// a valid IPv4 address
              
          }

              
          // todo: insert public-suffix-detection here

              
          if (!preg_match('/(([^.]+\.)?[^.]+)\.?\z/'$host$hits)) {
                  return 
          null// could not extract a 2nd level domain
              
          }
              return 
          $hits[1];

          Kommentar

          Lädt...
          X