Befehl für PHP gesucht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anwendungsfall
befehl
beispiel
beitrag
festplatte
funktion
funktioniert sofern
hole
inhalt
konstant
login
lsen
magische konstante
manipulation
mode
mglichkeit
pfad
stehen
uebrigens
verzeichnis
-
Hi,
ich suche für PHP den Befehl, der mir ausgibt, wie die aktuelle URL lautet wo ich gerade bin.
Also ich meine er würde mir jetzt zum Beispiel: http://www.lima-city.de/boards.php?mode=thread&id=56276
ausgeben.
Kann mir einer sagen wie der Befehl lautet?
Danke
Beitrag geändert: 18.11.2006 16:18:00 von newwarrior -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo newwarrior,
ich kann dir zwar nicht sagen, wie der Befehl lautet, denn mir ist kein solcher bekannt, aber dafür nennen ich dir einen andere möglichkeit:
$url = 'http://'.$_SERVER[SERVER_NAME].$_SERVER[REQUEST_URI];
Funktioniert, sofern du davon ausgehst, dass nur Adressen über das htt-Protokoll aufgerufen werden. -
Also ich habe jetzt folgendes:
$login_adress = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'/check_login.php';
Dass wird ausgeben: http://localhost/e-PM/login.php/check_login.php
Den fetten Teil würde ich gerne weg haben.
Nur wie? -
Also ich habe jetzt folgendes:
$login_adress = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'/check_login.php';
Dass wird ausgeben: http://localhost/e-PM/login.php/check_login.php
Den fetten Teil würde ich gerne weg haben.
Nur wie?
Eventuell mit dirname($_SERVER['PHP_SELF']);
Da die Funktion nur String-Manipulation betreibt, müsste sie auch auf URI-Pfade anwendbar sein. Ansonsten könnte preg_replace() oder str_replace() weiterhelfen:
$short_php_self = preg_replace(
'/'.preg_quote($_SERVER['SCRIPT_NAME'],'/').'\z/i',
'',
$_SERVER['PHP_SELF']
);
Das soll $_SERVER['SCRIPT_NAME'] am Ende von $_SERVER['PHP_SELF'] entfernen, hab'sch aber net getestet ... -
Also ich habe jetzt folgendes:
$login_adress = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'].'/check_login.php';
Dass wird ausgeben: http://localhost/e-PM/login.php/check_login.php
Den fetten Teil würde ich gerne weg haben.
Nur wie?
Eventuell mit dirname($_SERVER['PHP_SELF']);
Da die Funktion nur String-Manipulation betreibt, müsste sie auch auf URI-Pfade anwendbar sein. Ansonsten könnte preg_replace() oder str_replace() weiterhelfen:
$short_php_self = preg_replace(
'/'.preg_quote($_SERVER['SCRIPT_NAME'],'/').'\z/i',
'',
$_SERVER['PHP_SELF']
);
Das soll $_SERVER['SCRIPT_NAME'] am Ende von $_SERVER['PHP_SELF'] entfernen, hab'sch aber net getestet ...
So habe ich es gemacht:
$short_php_self = preg_replace('/'.preg_quote($_SERVER['SCRIPT_NAME'],'/').'\z/i','',$_SERVER['PHP_SELF']); $login_adress = 'http://'.$_SERVER['SERVER_NAME'].$short_php_self.'/check_login.php';
Und raus kommt das:http://localhost/check_login.php
-
Na, dann läuft dein Script auch vom Verzeichnis '/e-PM/' aus. Kann man natürlich von hier aus gaaaanz schlecht erkennen. Hast du mal meinen Vorschlag mit dirname() probiert?
Wenn ich solche Probleme lösen muss, dann hole ich mir immer mit print_r() oder var_dump() das Array $_SERVER. Dort stehen ein paar interessante Pfade oder Teil-URIs drin. Die werden dann passend aneinandergeklebt. Wenn sie nicht passen, wird vorher vorne oder hinten was abgeschnitten. (*Aua!*)
Hängt natürlich vom Anwendungsfall ab.
__FILE__ gibt übrigens den Pfad im Dateisystem an, und zwar von dem Script, in dem die Konstante __FILE__ notiert wurde. Also, wenn Script A Script B inkludiert und in Script B irgendwo __FILE__ steht, ersetzt PHP dessen Inhalt durch den Pfad, der auf der Festplatte zu Script B führt. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage