![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem sobie taką funkcję:
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:
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ń:
Ale też miałem byki, bo eval nie parsuje tablic. Zdecydowałem się na najwolniejszą z możliwości:
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wave - posprawdzam.
Phobos - nie sugeruj się przykładem jaki podaję, on nie ma związku, wiem, że to można zrobić prościej, ale chcę np. mieć tak: funkcja('<div align="center">[cokolwiek]</div>'); niech mi zamieni na <div align="center">cokolwiek</div>, ale pod warunkiem, że cokolwiek będzie w echo, tzn. echo 'cokolwiek'; Może być jeszcze inna funkcja zamiany zamiast preg_replace. Ważne, żeby działało. Chodzi głównie o to, żeby z większego tekstu pozamieniać kilka takich [coś] tak jak pisałem powyżej. edit callback pokazuje mi błąd: [...] preg_replace_callback() requires argument 2, 'Array', to be a valid callback [...] A według manuala powinno parsować, tylko kurcze chyba tablic nie obsługuje (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) edit Myślałem jeszcze nad array_merge:
Musiałbym to jak co przerobić, tekst parsuje, ale w wyniku mam tylko napis "Array" - dlaczego? Ten post edytował LamaMASTER 9.04.2006, 19:10:36 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 21:09 |