975 Stimmen

Abrufen der vollständigen URL in PHP

Ich verwende diesen Code, um die vollständige URL zu erhalten:

$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

Das Problem ist, dass ich einige Masken in meinem .htaccess Daher ist der in der URL angegebene Pfad nicht immer der tatsächliche Pfad der Datei.

Was ich brauche, ist die URL, das, was in der URL steht, nicht mehr und nicht weniger - die vollständige URL.

Ich muss wissen, wie die Datei in der Navigationsleiste des Webbrowsers angezeigt wird, und nicht den tatsächlichen Pfad der Datei auf dem Server.

0 Stimmen

Schauen Sie sich doch einfach mal das gesamte Array mit print_r($_SERVER) Dort finden Sie alles, was Sie brauchen :)

24 Stimmen

@Brade Die URL-Leiste befindet sich auf dem Browser des Benutzers, warum sollte PHP also irgendwelche Funktionalitäten diesbezüglich haben? PHP ist serverseitig.

33 Stimmen

@eis Glauben Sie mir, es gibt viele Gründe, dies zu wollen. Landingpages, die dieselbe Vorlage verwenden, aber separat verfolgt werden müssen, usw. Und Tatsache ist, dass PHP (oder jede andere serverseitige Sprache) alle verschiedenen Teile der URL zurückgeben kann, aber niemals das Ganze in einem String bereitstellen kann. Das erscheint einfach dumm.

1voto

ninja Punkte 465

Sie können Folgendes nutzen HTTP_ORIGIN wie im folgenden Ausschnitt dargestellt:

if ( ! array_key_exists( 'HTTP_ORIGIN', $_SERVER ) ) {
    $this->referer = $_SERVER['SERVER_NAME'];
} else {
    $this->referer = $_SERVER['HTTP_ORIGIN'];
}

0voto

UWU_SANDUN Punkte 977

Ich denke, diese Methode ist gut versuchen Sie es

if($_SERVER['HTTP_HOST'] == "localhost"){
    define('SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    define('SITEPATH', $_SERVER['DOCUMENT_ROOT']);
    define('CSS', $_SERVER['DOCUMENT_ROOT'] . '/css/');
    define('IMAGES', $_SERVER['DOCUMENT_ROOT'] . '/images/');
}
else{
    define('SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    define('SITEPATH', $_SERVER['DOCUMENT_ROOT']);
    define('TEMPLATE', $_SERVER['DOCUMENT_ROOT'] . '/incs/template/');
    define('CSS', $_SERVER['DOCUMENT_ROOT'] . '/css/');
    define('IMAGES', $_SERVER['DOCUMENT_ROOT'] . '/images/');
}

-1voto

Akshit Ahuja Punkte 343
$page_url = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

Für mehr: Wie man die vollständige URL einer Seite mit PHP ermittelt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X