2017-10-13 4 views
0

Ist es möglich, eine str_replace oder preg_replace auf einem eingebetteten Stil zu tun? Ich habe verschiedene Möglichkeiten mit wenig Glück ausprobiert und bin mir nicht sicher, was ich vermisse.str_replace auf einem eingebetteten CSS-Stil

Ich habe einen Tag auf Seite mit einem Bündel von CSS von denen viele Klassen mit relativ Hintergrund Pfaden zum Beispiel enthält:

background: url("/wcsstore/comp/en_GB/header.jpg") no-repeat; background-position: center center; height: 200px; max-width: 1200px; margin: 0 auto 40px; 

Ich versuche, diesen Weg zu einem absoluten Pfad mit dem folgenden Code zu ersetzen, aber scheint nicht das CSS auf der Seite zu zielen.

$replaceThis = 'url(\"/wcsstore/"'; 
str_replace('/wcsstore/', 'http://****.com/nimrod/wcsstore/', $replaceThis); 

Danke.

P.S In diesem Fall ist es für mich nicht möglich, auf einzelne Klassen zu zielen. Dies ist ein Snippet, das in einer Header-Vorlage enthalten ist, die auf mehr als 1000 Seiten ausgeführt wird.

Antwort

0

Sie haben vergessen, den neuen Wert einer Variablen zuzuweisen:

$css ='background: url("/wcsstore/comp/en_GB/header.jpg") no-repeat; background-position: center center; height: 200px; max-width: 1200px; margin: 0 auto 40px;'; 
$css = str_replace('/wcsstore/', 'http://****.com/nimrod/wcsstore/', $css); 
echo "$css\n"; 

Ausgang:

background: url("http://****.com/nimrod/wcsstore/comp/en_GB/header.jpg") no-repeat; background-position: center center; height: 200px; max-width: 1200px; margin: 0 auto 40px; 
+0

Vielen Dank für Ihre Antwort! Ich habe gerade versucht, das auszuführen, aber es scheint nur den Pfad zu wiederholen und führt nicht wirklich alle Änderungen am Dokument aus. Fehle ich etwas wirklich einfaches? (PHP Newbie) – user6583984

+0

@ user6583984: siehe meine Bearbeitung. – Toto

+0

Vielen Dank für Ihre Antwort wirklich schätzen die Hilfe. Ich habe den Code nur auf Ihren bearbeiteten Vorschlag aktualisiert, aber leider ist es immer noch nur den Pfad auszudrucken und die Änderungen im eingebetteten