<?php function [...] { "#\[(.*?)\]#si" ); "echo '\\1';" ); } ?>
Specialnie dodałem po jednej wartości do tablic. Działa on w ten sposób, że przy zastosowaniu funkcji zamienia mi np. [cokolwiek] na "echo 'cokolwiek'". Problem w tym, że preg_replace nie parsuje php i dlatego moje "echo 'cokolwiek'" pozostaje widoczne w kodzie (nawet jeżeli dodam <? i ?> to też je widać). Pomyślałem więc o eval. Zrobiłem wpierw tak:
<?php function [...] { "#\[(.*?)\]#si" ); "echo '\\1';" ); } ?>
Ale wtedy miałem parse error gdy kod zawierał np. normalny tekst czy tagi html. Pomyślałem więc o evaluowaniu samej tablicy zamień:
<?php ?>
Ale też miałem byki, bo eval nie parsuje tablic. Zdecydowałem się na najwolniejszą z możliwości:
<?php function [...] { "#\[(.*?)\]#si" ); ); } ?>
Teraz tekst jest parsowany, ale mam błędy w wynikach, ponieważ tekst zostaje parsowany ZANIM preg_replace go zamieni, czyli w rezultacie widzę "/1" zamiast "cokolwiek".
Może zadanie trudne - ale jak sobie poradzić z tym, żeby preg_replace najpierw zamieniało, a potem TYLKO zamieniony tekst został parsowany?