2017-11-29 8 views
2

Ich verwende Lazyload-Skript für iframes Ich muss einen preg_replace-Code machen, um src zu data-src zu ändern.preg_replace img src zu data-src stack overflow (PHP)

Ich versuche, so etwas wie dieses, aber ich schlug fehl:

$cache = preg_replace('%<iframe.*?src=["\'](.*?)["\'].*?/?>%i', 'data-src="$1"', $content); 

Mein Code nur data-src="the link" Code ohne die volle iframe gedruckt wird.

Antwort

0

Das einzige, was zu tun ist, ist der Zugriff auf die Null-Breite Position vor dem src Teilstring eines Tags. Unten verwende ich \K, um den Fullstring-Match neu zu starten, dann (?=src), um nach vorne zu schauen, ohne irgendwelche Zeichen zu verbrauchen.

Code: (Demo)

$content='Some text that contains src <iframe src="www.example.com"/> Some text'; 
$cache=preg_replace('~<iframe[^>]*\K(?=src)~i','data-',$content); 
echo $cache; 

Ausgang:

Some text that contains src <iframe data-src="www.example.com"/> Some text