Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> preg_replace - problem
expert
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
wookieb
post
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';
Go to the top of the page
+Quote Post
expert
post
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.
Go to the top of the page
+Quote Post
ultra_18
post
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
Go to the top of the page
+Quote Post
expert
post
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....
Go to the top of the page
+Quote Post
ultra_18
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 4
Dołączył: 30.10.2008

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


Cytat(expert @ 8.12.2008, 20:08:18 ) *
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
Go to the top of the page
+Quote Post
wookieb
post
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
Go to the top of the page
+Quote Post
expert
post
Post #8





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Cytat(wookieb @ 9.12.2008, 09:54:58 ) *
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!
Go to the top of the page
+Quote Post

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: 25.08.2025 - 08:11