![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki kod:
Kod $tpl=preg_replace('<<'.strtoupper($remov).'<<(.*?)>>'.strtoupper($remov).'>>', '', $tpl); //podmienia zmienne na wartości Cytat <<SAVELOG<< aaaaaa >>SAVELOG>> I przypuśćmy, że zmienna $remov=savelog; Dlaczego preg_replace nie działa jak potrzeba? Kod $tpl=preg_replace("(\<\<".strtoupper($remov).'\<\<(.*?)\>\>'.strtoupper($remov)."\>\>)", '', $tpl); //podmienia zmienne na wartości Wynik bez zmian. Nadal to samo. Ten post edytował expert 8.12.2008, 19:30:59 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ponieważ zapisuje się
Kod $remov='savelog';
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Racja. ale po mimo tego i tak nie działa ta funkcja.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 4 Dołączył: 30.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
sory zle ci powiedzialem z ta podmiana cudzyslowow i znakami ucieczki, zupelnie nie o to mi chodzilo, jednak mysl i tak byla bledna ale dam ci rade jak masz duzo zmiennych i funkcji to nie baw sie w pojedyncze cudzyslowy i kropki jako laczniki tylko stawiaj " wtedy mozesz pisac rownorzedny tekst z funkcjami i zmiennymi i jest wtedy o trudniej sie pomyslic. Wracajac do tematu ja na twoim miejsce pobawil sie z funkcja eregi i znalazl dobry wzor do wyszukiwania a dopiero pozniej bawil sie w podmiane.
(.*?) nie wyszuka ci czasem wszystkich znakow do konca tekstu? nie powinno sie napisac [^'>>']* ? Ten post edytował ultra_18 8.12.2008, 19:52:42 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niby eregi przy takim ciągu zwraca 1: '<<'.strtoupper($remov).'<<(.*)>>'.strtoupper($remov).'>>'
a preg_replace nic nie robi.... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 4 Dołączył: 30.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niby eregi przy takim ciągu zwraca 1: '<<'.strtoupper($remov).'<<(.*)>>'.strtoupper($remov).'>>' a preg_replace nic nie robi.... ereg zwaraca wartosci jak znajdzie ciag a eregi wyszukuje wzor w ciagu i zwraca wynik do tablicy ja wyszukalem po tym wzorze co napisales i wynik byl inny niz bys chcial uzyskac wiec proponuje najpierw znalezdz poprawny wzor wyrazenia regularnego |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Kod $test='<<SAVELOG<< aaaaaa >>SAVELOG>>'; $remov='savelog'; $test=preg_replace("/(<<".strtoupper($remov).'<<(.*?)>>'.strtoupper($remov).">>)/s", '', $test); var_dump($test); Wazny był modyfikator s. http://pl.php.net/manual/pl/reference.pcre...n.modifiers.php |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod $test='<<SAVELOG<< aaaaaa >>SAVELOG>>'; $remov='savelog'; $test=preg_replace("/(<<".strtoupper($remov).'<<(.*?)>>'.strtoupper($remov).">>)/s", '', $test); var_dump($test); Wazny był modyfikator s. http://pl.php.net/manual/pl/reference.pcre...n.modifiers.php Działa! Dzięki! |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 08:11 |