Ich baue eine Erweiterung für Opencart 2.3.x und ich muss alle Vorkommen von DIR_IMAGE
durch _DIR_IMAGE
ersetzen, so kam ich mit diesem regulären Ausdruck, der mit PHP allein funktioniert, aber nicht innerhalb eines VQMod mod:Regex ersetzen alle Vorkommen von String innerhalb von VQMod
<operation error="log">
<search position="replace"><![CDATA[/(.*?)(DIR_IMAGE)(.*?)/g]]></search>
<add><![CDATA[$1_DIR_IMAGE$3]]></add>
</operation>
Diese PHP-only funktioniert:
preg_replace('/(.*?)(DIR_IMAGE)(.*?)/g', '$1_DIR_IMAGE$3', $string);
Kann mir jemand in die richtige Richtung? An dieser Stelle nehme ich an, dass Alternativen zu dem obigen Ausdruck geschätzt werden.
PHP regex unterstützt den Modifikator 'g' nicht. 'preg_replace' ersetzt standardmäßig alle nicht überlappenden Vorkommen. Besdies, Sie müssen 'regex =" true "' verwenden, um eine Regex verwenden zu können. '' –
@ AD7six, weil ich VQMod benutze, welches ein Drittes Stück Code ist, um Originaldateien zu überschreiben. Es ist der einzige Weg. – yoda
@ WiktorStribiżew Ich versuchte mit ~ exp ~ ohne Erfolg, und auch/exp/ – yoda