Imam situaciju da treba da obradjujem neke XML-ove, i desi se da nisu validni, moraju da se lupe CDATA tagovi jer ima nevalidnih karaktera.
Uspeo sam da napravim regex, isprobao na regex101, sve ful, medjutim, treba da po'vatam sve elemente koji imaju link u sebi... radim tako sto hvatam >http/s i menjam sadrzaj sa ><![CDATA[https://nekilink]]>, u fazonu:
<link>https:// ne valja</link>
<link><![CDATA[https:// link valja]]></link>
Evo ga regex:
preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+\w)/[^()<>\n]+)#i', '\\1<![CDATA[\\2]]>', $file);
Naravno koliko znam, PHP ne potrzava multiline, tako da verovatno ne znam da ga pogodim. Valjalo bi mi neko elegantno i brzo resenje, bez previse manipulacije, brzina donekle moze i da ispasta zbog kraceg resenja jer imam mnooogo xml-ova koji imaju nekih problema, ovo je samo jedan od njih. Molim Boga da ne bude foreach ili nesto tako :)
P.S. "m" ne pomaze umesto i na kraju, a g nije podrzan od strane phpa :)
Hvala :)
THE ONLY EASY DAY WAS YESTERDAY