2017-03-19 1 views
-1

Gerade jetzt hinzufügen, ich preg_replace etwas am Anfang eines HTML-Attribut auf diese Weise hinzufügen kann:preg_replace etwas vor dem Ende des HTML-attr

$output = preg_replace('/class="/', 'class="$new_class, $output, 1); 

Wie kann ich etwas am Ende des HTML hinzufügen Attribut?

+0

Sie sollten in allen Dingen übereinstimmen zwischen doppelten Anführungszeichen 'preg_replace ('/ (class =" [^"] *)/'," \ 1 $ new_class ", $ output);' – revo

+0

können Sie '$ output'- und' $ new_class'-Werte posten? – RomanPerekhrest

Antwort

1

Sie sollten Ihre Regex ändern:

(class="[^"]*) 

was bedeutet " eine class=" und alles andere bis zu einem doppelten Anführungszeichen zu erfassen. Dann \1 Rückverweis verwenden, um erste Gruppe in Ersatz-String Erfassung zum Anhängen neue Klasse hinzu:

preg_replace('/(class="[^"]*)/', "$1 $new_class", $output); 

PHP live demo

+0

Funktioniert nicht! Sieht so aus, als ob etwas mit dem zweiten Parameter "\ 1 $ new_class" nicht stimmt. – user1181378

+0

Bitte überprüfen Sie das Update. – revo

+0

Funktioniert jetzt! Vielen Dank! Aber ich möchte es nur für das erste Vorkommen von Klassenattributen. ($ output könnte mehrere HTML-Tags mit mehreren Klassenattributen haben). – user1181378

Verwandte Themen