Es gibt viele Posts zum Konvertieren relativ zu absoluten Pfaden in PHP. Ich suche nach einer spezifischen Implementierung, die über diese Beiträge hinausgeht (hoffentlich). Könnte mir bitte jemand mit dieser spezifischen Implementierung helfen?
Ich habe eine PHP-Variable, die verschiedenes HTML enthält, einschließlich href
s und img
s, die relative URLs enthalten. Meistens (zum Beispiel) /en/discover
oder /img/icons/facebook.png
Ich möchte diese PHP-Variable so verarbeiten, dass die Werte meiner href
s und img
s in http://mydomain.com/en/discover
und http://mydomain.com/img/icons/facebook.png
Ich glaube, die folgende Frage bezieht sich auf die Lösung für href
s. Wie können wir dies erweitern, um auch img
s zu berücksichtigen?
Wäre ein Regex in Ordnung? Oder da wir uns mit einer Menge Ausgabe beschäftigen, sollten wir DOMDocument verwenden?
Nach einigen weiteren Recherchen bin ich auf diesen Artikel von Gerd Riesselmann gestoßen, wie man das Fehlen einer base href
Lösung für RSS-Feeds lösen kann. Sein Ausschnitt löst tatsächlich meine Frage!
Danke, Gerd! Und danke Shadyyx, um mich in Richtung base href
! Zu zeigen!
Ausgezeichnete Lösung. Es gibt jedoch einen kleinen Tippfehler in dem Muster. Wie oben beschrieben, schneidet es das erste Zeichen von href oder src ab. Hier sind Muster, die wie vorgesehen funktionieren:
%Vor%und
%Vor%Die öffnende Klammer der zweiten Ersatzreferenzen wird verschoben. Dies bringt das erste Zeichen von href oder src, das http | ftp | https nicht mit den Ersatzreferenzen übereinstimmt.
Ich fand, dass die akzeptierte Antwortlösung für mich nicht funktionierte, wenn die href src und die Basis-URL komplexer wurden.
zum Beispiel:
Basis-URL:
%Vor%href src:
%Vor%falsch zurückgegeben:
%Vor%Ich habe die folgende Funktion gefunden, die die URL korrekt zurückgibt. Ich habe das aus einem Kommentar hier: Ссылка von Isaac Z. Schlüter.
Dies hat korrekt zurückgegeben:
%Vor% %Vor%Tags und Links php image src absolute-path relative-path