PHP: Suchen Sie Bilder und Links mit relativen Pfad in der Ausgabe und konvertieren Sie sie in absoluten Pfad

8

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

konvertiert werden

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?

    
maartenmachiels 19.11.2012, 16:09
quelle

3 Antworten

8

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!

Ссылка

%Vor%

Danke, Gerd! Und danke Shadyyx, um mich in Richtung base href ! Zu zeigen!

    
maartenmachiels 20.11.2012, 14:04
quelle
4

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.

    
five2one 22.05.2013 20:53
quelle
2

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%     
joshweir 29.07.2015 06:49
quelle