2017-05-10 3 views
0

Ich habe diese regex:PHP Regex: Entfernen Sie Zitate von HTML-Attribute, einschließlich img src

//remove quotes from HTML attributes that does not contain spaces; keep quotes around URLs 

var $result = preg_replace('/((\S)+\s*(?<!href)(?<!src)(=)\s*)(\"|\')(\S+)(\"|\')/','$1$5', $string); 

Es ist fast wie beabsichtigt arbeiten, ich habe es nur mit einer zusätzlichen Ausnahme anpassen müssen: allow Zitate aus „src entfernen "Attribute von" img "Tags.

Könnte bitte jemand mir einen Tipp geben? Jede Hilfe würde sehr geschätzt werden.

+0

Warum wollen Sie Attributwerte unquote? – chris85

+0

Ich erstelle ein HTML-Minifikations-Skript, das intern auf einer Website ausgeführt wird. –

+0

Verwenden Sie eine DOM-Parser-Bibliothek, nicht regexp, um HTML zu analysieren. – Barmar

Antwort

0

Eine schlecht kodierte Lösung durch Anpassung gefunden, sorry, ich bin kein Regex-Experte.

$imgTag = '<img src="image.jpg"/>'; 
$imgTag = preg_replace('/((\S)+\s*(?<=src)(=)\s*)(\"|\')(\S+)(\"|\')/','$1$5',$imgTag); 

Ergebnisse:

<img src=image.jpg/>