nochmal pfadangaben variabel
alex
- php
hi..
habe folgenden codeschnipsel von hier:
http://php3.de/manual/de/function.header.php
header("Location: http://".$_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
."/".$relative_url);
bei mir ist es nun so, das ich einmal lokal nen ordner habe für alle projekte, aber beim provider brauch ich den ja nicht. somit hätte ich dann bei
dirname($_SERVER['PHP_SELF'])
nur / als ausgabe und somit würden dann zwei // hintereinander stehen, was nen fehler bringt.
wie kann man das am beste lösen?
Hi,
nur / als ausgabe und somit würden dann zwei // hintereinander stehen, was nen fehler bringt.
wie kann man das am beste lösen?
mit if?
Cheatah
Und auf was prüfen? würde es gehen mit if(strlen==1) oder gibts ne bessere variante?
Hi,
Und auf was prüfen?
auf das "/"?
Cheatah
auf das "/"?
aber das "/" kommt doch immer vor egal ob das verzeichnis nicht da is --> ausgabe / oder halt /verzeichnis.
ich glaub hab grad ne blockade :-) könntest du mir mal auf die sprünge helfen?
Hi,
aber das "/" kommt doch immer vor egal ob das verzeichnis nicht da is --> ausgabe / oder halt /verzeichnis.
ich glaub hab grad ne blockade :-) könntest du mir mal auf die sprünge helfen?
Du möchtest an einer bestimmten Stelle eines Strings einen "/" anfügen, sofern er dort noch nicht ist. Also prüfe genau das: ob an der Stelle schon ein "/" ist.
Cheatah
Hi,
ich habe das jetzt so gemacht:
$host = "http://".$_SERVER['HTTP_HOST'];
$ordner = dirname($_SERVER['PHP_SELF']);
if(strlen($ordner)==1) $ordner = substr($ordner,1);
$path = $host.$ordner."/editnews.php";
header("Location: ".$path);
oder gibts noch ne bessere variante?
Hi,
if(strlen($ordner)==1) $ordner = substr($ordner,1);
es mag sein, dass die PHP-Funktionen anders reagieren als die gleichen Funktionen in anderen Sprachen; aber soweit ich es sehe schneidest Du hier das erste Zeichen ab, wenn der String nur ein Zeichen hat. Von der Ineffizienz abgesehen - woraus ersiehst Du, dass es sich bei dem Zeichen um einen Slash gehandelt hat?
oder gibts noch ne bessere variante?
Unter Garantie. Dein Code basiert auf Hoffnung.
Cheatah
»»Von der Ineffizienz abgesehen - woraus ersiehst Du, dass es sich bei dem Zeichen um einen Slash gehandelt hat?
das hier
--> dirname($_SERVER['PHP_SELF'])
gibt doch immer als erstes zeichen nen / zurück oder etwa nicht?
habe jetzt abgeändert: if(strlen($ordner)==1) $ordner ="";
wieso basiert das auf hoffnung? was wäre denn ein besserer ansatz?
Hi,
das hier
--> dirname($_SERVER['PHP_SELF'])
gibt doch immer als erstes zeichen nen / zurück oder etwa nicht?
wo hast Du diese Information dokumentiert gefunden? Und - was gibt es als letztes Zeichen zurück?
habe jetzt abgeändert: if(strlen($ordner)==1) $ordner ="";
Effizienter. Ganz nebenbei: "if" ist keine Funktion. Es gibt keinen Grund, die öffnende Klammer nicht durch ein Leerzeichen abzutrennen.
wieso basiert das auf hoffnung? was wäre denn ein besserer ansatz?
Du möchtest einen String mit bestimmter Bedeutung und Semantik aufbauen, verlässt Dich aber bei den Einzelteilen darauf, dass sie genau das enthalten, was Du gerne hättest. Wenn Du dies nicht mit _Sicherheit_ sagen kannst, basiert Dein Code somit auf Hoffnung.
Cheatah
--> dirname($_SERVER['PHP_SELF'])
gibt doch immer als erstes zeichen nen / zurück oder etwa nicht?wo hast Du diese Information dokumentiert gefunden? Und - was gibt es als letztes Zeichen zurück?
wenn ich mir
echo $_SERVER['PHP_SELF'] ausgeben lasse, steht an erster stelle immer "/". was könnte denn noch dort stehen, das es so unsicher ist??
Hi,
wenn ich mir
echo $_SERVER['PHP_SELF'] ausgeben lasse, steht an erster stelle immer "/".
und aus einer endlichen Zahl von Testfällen schließt Du auf die Allgemeinheit? Das ist ein Fehler.
Cheatah
und aus einer endlichen Zahl von Testfällen schließt Du auf die Allgemeinheit? Das ist ein Fehler.
das is doch immer so..in jedem fall steht dort ein "/" zum anfang. ich hatte dich doch gefragt was da noch stehen kann.
alex