Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Parsowanie tablicy z preg_replace?
LamaMASTER
post
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


Zrobiłem sobie taką funkcję:
  1. <?php
  2.  
  3. function [...]
  4. {
  5. $szukaj = array (
  6. "#\[(.*?)\]#si"
  7. );
  8. $zamien = array (
  9. "echo '\\1';"
  10. );
  11. return preg_replace($szukaj, $zamien, [...]);
  12. }
  13.  
  14. ?>

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:
  1. <?php
  2.  
  3. function [...]
  4. {
  5. $szukaj = array (
  6. "#\[(.*?)\]#si"
  7. );
  8. $zamien = array (
  9. "echo '\\1';"
  10. );
  11. $wynik = preg_replace($szukaj, $zamien, [...]);
  12. return eval($wynik);
  13. }
  14.  
  15. ?>

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ń:
  1. <?php
  2.  
  3. return preg_replace($szukaj, eval($zamien), [...]);
  4.  
  5. ?>

Ale też miałem byki, bo eval nie parsuje tablic. Zdecydowałem się na najwolniejszą z możliwości:
  1. <?php
  2.  
  3. function [...]
  4. {
  5. $szukaj = array (
  6. "#\[(.*?)\]#si"
  7. );
  8. $zamien = array (
  9. eval("echo '\\1';")
  10. );
  11. return preg_replace($szukaj, $zamien, [...]);
  12. }
  13.  
  14. ?>

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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phobos
post
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 7.04.2006

Ostrzeżenie: (0%)
-----


w php nie mozesz uzywac sobie tagów html bo wyskakuje error tak jest zbudowane
( napisz sobie cos takiego
  1. <?php
  2. <
  3. ?>
-- ten samo error co wysakuje tobie)
mozesz uzywac html tylko w funckach echo albo print dlatego jak usniesz print z tego co ci dalem to wyskakuje blad
narazie nie mam lepszego pomyslu ten co dalem na dzisiaj jest najlepszy moze wpadniesz kiedys na inny to pisz na forum pomoge jak cos

Ten post edytował phobos 11.04.2006, 17:13:38
Go to the top of the page
+Quote Post

Posty w temacie
- LamaMASTER   Parsowanie tablicy z preg_replace?   7.04.2006, 21:02:22
- - phobos   Moze takie cos pomorze [PHP] pobierz, plaintext ...   7.04.2006, 21:21:34
- - LamaMASTER   Z tym już kombinowałem, tzn. samo danie \...   7.04.2006, 21:31:18
- - phobos   tak [PHP] pobierz, plaintext <?php funct...   7.04.2006, 22:29:59
- - LamaMASTER   Też próbowałem, ale przypuśćmy, że robię sobie tak...   8.04.2006, 08:33:01
- - Wave   może preg_replace_callback ? albo modyfikator ...   8.04.2006, 11:32:44
- - phobos   ej czyli ty chcesz cos takiego w tablicy chcesz m...   8.04.2006, 12:59:06
- - LamaMASTER   Wave - posprawdzam. Phobos - nie sugeruj się przyk...   9.04.2006, 18:32:05
- - phobos   aha czyli ty chcesz aby byla taka funkcja ktora pr...   9.04.2006, 21:56:42
- - LamaMASTER   Nieeee. Pousuwać nawiasy to ja mogę za pomocą str_...   10.04.2006, 19:49:03
- - phobos   ok man zrobilem cos takiego funckja ktora w teksci...   10.04.2006, 21:52:35
- - LamaMASTER   Wielkie dzięki, to jest już postęp. Zastosowałem t...   11.04.2006, 10:41:09
- - phobos   po pierwsze primo mussz zamienic [PHP] pobierz, p...   11.04.2006, 12:01:49
- - LamaMASTER   Cytatpo pierwsze primo mussz zamienic nie dawaj t...   11.04.2006, 13:02:07
- - phobos   sluchaj ale jest jeden szczegół popatrz dla takieg...   11.04.2006, 15:20:13
- - LamaMASTER   Kurcze Ty to masz łeb Teraz się trochę pogubiłem,...   11.04.2006, 15:56:16
- - phobos   mam takie cos tylko tam se pozniej pozamieniaj na ...   11.04.2006, 16:35:53
- - LamaMASTER   Ale kombinujesz na około, jak było print tak jest ...   11.04.2006, 16:47:16
- - phobos   tzn chodzi o to ze jak masz <div....> to poz...   11.04.2006, 16:57:32
- - LamaMASTER   O to zleksza kiepsko. Czemu jest ten parse error? ...   11.04.2006, 17:03:05
- - phobos   w php nie mozesz uzywac sobie tagów html bo wyskak...   11.04.2006, 17:13:03


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 08:24