Anonym: PHP ausgelesene Url verwenden

Hallo liebe Community,

ich habe eine Frage zu PHP.
Ich lese in PHP eine URL aus mit folgendem Code:

  
$url = $_SERVER['REQUEST_URI'];  

Ist es möglich, dass ich die $URL so verwende, dass ich weitere "Unterseiten" lösche bzw. ignoriere...
Also mit Unterseiten meine ich /Seite/Unterseite/etc.

Wäre für eine if else Geschichte.

Danke und schon einmal eine besinnliche Vorweihnachtszeit.

  1. Tach!

    Ich lese in PHP eine URL aus mit folgendem Code:

    $url = $_SERVER['REQUEST_URI'];

      
    Das ist nicht nur ein Lesen sondern auch noch eine Zuweisung. Und diese Zuweisung ist nicht sehr sinnvoll. Der Wert steht ja bereits in $\_SERVER['REQUEST\_URI'] fertig zum Verwenden, der muss nicht nochmal irgendwohin umkopiert werden.  
      
    
    > Ist es möglich, dass ich die $URL so verwende, dass ich weitere "Unterseiten" lösche bzw. ignoriere...  
      
    Ja sicher. Eine URL ist ein String, den kann man mit allen zur Verfügung stehenden Stringfunktionen bearbeiten. Obendrein gibts noch spezielle Funktionen, die sich mit dem Zerlegen von URLs beschäftigen (parse\_url()). REQUEST\_URI hat ja manchmal auch noch einen Querystring hintendran.  
      
      
    dedlfix.
    
    1. Hallo!

      REQUEST_URI hat ja manchmal auch noch einen Querystring hintendran.

      Und genau deshalb sollte man auch Request_Uri nicht mit Query_String verwechseln. Bzw. sich darüber im klaren werden warum das eine und nicht das andere.

      Wenn man den query-string bearbeiten will, sollte man auch das tun und nicht mit der Request_Uri anfangen. Zudem es für die Request_Uri in der Regel auch die bessere Alternative namens 'PHP_SELF' gibt die ohne den query-string daher kommt.

      Also besser Script und Parameter trennen.

      Grüße, Matze

      1. Tach!

        Wenn man den query-string bearbeiten will, sollte man auch das tun und nicht mit der Request_Uri anfangen. Zudem es für die Request_Uri in der Regel auch die bessere Alternative namens 'PHP_SELF' gibt die ohne den query-string daher kommt.

        PHP_SELF ist nicht immer das, was der Nutzer als URL aufgerufen hat, sondern der Name des gestarteten Scripts, eventuell ergänzt um PathInfo (/foo.php/path/info). Ohne Pathinfo wäre es SCRIPT_FILENAME. Es ist keine generelle Alternative zu REQUEST_URI, wenn man wissen möchte, was der Nutzer wirklich aufgerufen hat. Das trifft zum Beispiel in Rewrite-/FallbackResource-Szenarien zu. Manche übersetzen mit ihren Regeln zwar nur bestimmte genau definierte Pfadteile in Querystring-Parameter, aber das ist unflexibel bei unterschiedlicher Anzahl. Dann ist es besser, .* auf index.php umzuschreiben (oder FallbackResource zu nehmen) und selbst die REQUEST_URI auszuwerten. Dass da noch der Querystring hintendranhängen kann, ist nicht weiter tragisch, den bekommt man mit parse_url() oder einfach beim ersten ? abgeschnitten.

        Also besser Script und Parameter trennen.

        Es gibt da kein generelles "besser", besonders wenn man die so genannten SEO-URLs verwenden möchte. Besser wäre nur, die gewünschten URL-Situationen durchzuspielen und dann zu schauen, welche Informationen über den Request an welcher Stelle in $_SERVER auftauchen.

        dedlfix.

        1. Hilft alles wenig!
          parse URL zerlegt ja nicht meinen Pfad.
          Ich will ja den Pfad reduzieren!

          Aber Danke für die Antworten

          1. Tach!

            Hilft alles wenig!
            parse URL zerlegt ja nicht meinen Pfad.
            Ich will ja den Pfad reduzieren!

            Deine Frage hat auch nicht sehr verständlich dein Problem beschrieben. Jedenfalls kannst du alle Stringverarbeitung, die es gibt, auf den Pfad-String anwenden, beispielsweise explode().

            dedlfix.