Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Funktion gesucht, die aus relativem Pfad einen Absoluten macht
Frage
Hallo!
Wie schon gesagt, ich suche nach einer PHP-Funktion, die aus einer Basisadresse und einer dazu relativen Adresse eine absolute Adresse macht. Bei php.net hab ich bisher nur realpath() gefunden. Nur ist diese anscheinend nur für lokale Adressen relativ zum Arbeitsverzeichnis.
Ich suche aber etwas für Webadressen.
Beispiel:
http://example.com/sub1/sub2/sub3/sub4/index.htm
+
../../images/1.jpg
=
http://example.com/sub1/sub2/images/1.jpg
Ist zwar keine grosse Programmieraufgabe, aber trotzdem möchte ich nicht wieder etwas selbst machen, um irgendwann danach zu merken, dass es das in PHP schon fertig gibt. ;-)
Deshalb frag ich lieber vorher mal euch Profis mit dem Überblick über die Millionen PHP-Funktionen. ;-)
LG Bruni
Antwort 1 von sTk
Antwort 2 von _Bruni_
Hi Steffen! :-)
Das ist leider ein Mißverständnis! Mir geht es um etwas anderes. Ich hätte wohl dazuschreiben sollen, dass ich PHP clientseitig einsetze und nicht, wie üblich, serverseitig. ;-)
Es geht dabei um ein Skript fürs Offlinebrowsen. Wenn dieses die Seite "http://example.com/sub1/sub2/sub3/sub4/index.htm" herunterlädt und dann im Dokument einen Link zu "../../images/1.jpg" findet, muss es, um dieses Seitenelement laden zu können, daraus ja die absolute Webadresse "http://example.com/sub1/sub2/images/1.jpg" machen.
LG Bruni
PS: An die Profis: Ja, ich weiss, man muss auch noch schauen, ob ein Base-Befehl einen anderen Basispfad vorgibt. ;-)
Das ist leider ein Mißverständnis! Mir geht es um etwas anderes. Ich hätte wohl dazuschreiben sollen, dass ich PHP clientseitig einsetze und nicht, wie üblich, serverseitig. ;-)
Es geht dabei um ein Skript fürs Offlinebrowsen. Wenn dieses die Seite "http://example.com/sub1/sub2/sub3/sub4/index.htm" herunterlädt und dann im Dokument einen Link zu "../../images/1.jpg" findet, muss es, um dieses Seitenelement laden zu können, daraus ja die absolute Webadresse "http://example.com/sub1/sub2/images/1.jpg" machen.
LG Bruni
PS: An die Profis: Ja, ich weiss, man muss auch noch schauen, ob ein Base-Befehl einen anderen Basispfad vorgibt. ;-)
Antwort 3 von Nessus
Hi,
*kopfkratz*
Du weißt, das PHP eine serverseitige Scriptsprache ist?
Wie willst du dann mit PHP einen Pfad auf dem Client einlesen?
Nessus
*kopfkratz*
Du weißt, das PHP eine serverseitige Scriptsprache ist?
Wie willst du dann mit PHP einen Pfad auf dem Client einlesen?
Nessus
Antwort 4 von _Bruni_
Hi Nessus! :-)
Da PHP fast nur serverseitig eingesetzt wird, glauben die meisten, dass das die einzige Möglichkeit ist. Man kann PHP aber, genau wie z.B. Perl, auch auf dem Clientrechner in der Konsole laufen lassen.
Also um alle Klarheiten zu beseitigen:
Mein Skript ist ein Webclient, der von Webservern Dokumente anfordert. ;-)
LG Bruni
Zitat:
Du weißt, das PHP eine serverseitige Scriptsprache ist?
Du weißt, das PHP eine serverseitige Scriptsprache ist?
Da PHP fast nur serverseitig eingesetzt wird, glauben die meisten, dass das die einzige Möglichkeit ist. Man kann PHP aber, genau wie z.B. Perl, auch auf dem Clientrechner in der Konsole laufen lassen.
Also um alle Klarheiten zu beseitigen:
Mein Skript ist ein Webclient, der von Webservern Dokumente anfordert. ;-)
LG Bruni
Antwort 5 von Risatara2
Hi,
Also mir persönlich ist eine solche Funktion nicht bekannt, aber du kannst dir ja eine schreiben :D
Ich würde dafür die String-Funktion strtok() oder eine ähnliche benutzen, um die Pfade zu zerteilen, und dann für jedes Element des relativen Pfads überprüfen, ob es ".." ist, wenn ja dann wird das letzte Element des absoluten Pfads entfernt, wenn nicht wird das Element angehängt.
Das is jetzt ganz ins unreine gedacht
Risatara
Also mir persönlich ist eine solche Funktion nicht bekannt, aber du kannst dir ja eine schreiben :D
Ich würde dafür die String-Funktion strtok() oder eine ähnliche benutzen, um die Pfade zu zerteilen, und dann für jedes Element des relativen Pfads überprüfen, ob es ".." ist, wenn ja dann wird das letzte Element des absoluten Pfads entfernt, wenn nicht wird das Element angehängt.
Das is jetzt ganz ins unreine gedacht
Risatara

