Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z preg_replace
qbba
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 25.10.2002
Skąd: z kabla:)/ czewa

Ostrzeżenie: (10%)
X----


Witam,

Jako, że nieznam wyrażeń regularanych, a jestem zmuszony do napisania prostego systemu templatów, zwracam się z problemem.

Mam takie wyrażenie:
  1. <?php
  2.  
  3. $this->dane = preg_replace( &#092;"/<if \"(.*?)\\"=\"(.*?)\">(.*?)</if>/ie\", \"eval(\"return ($this -> warotsci2[1] == 2) ? '3' : '';\")\", $this->dane );
  4. ?>

te krzaki to \

Przy tym wyrażeniu php (wersja 5:P) wywala mi następujący błąd:
Kod
Parse error: parse error, unexpected T_STRING in E:\Program Files\Apache Group\Apache2\htdocs\temp.php(31) : regexp code(1) : eval()'d code on line 1

wie ktos, gdzie błąd? Dodam jeszcze, że kod:
  1. <?php
  2.  
  3. $this->dane = preg_replace( &#092;"/<if \"(.*?)\\"=\"(.*?)\">(.*?)</if>/ie\", \"eval(\"return ($array2[1] == 2) ? '3' : '';\")\", $this->dane ); 
  4.  
  5. ?>

działa poprawnie(tzn tak jak chcę)

PS. Sorka... chyba php początkujący

Ten post edytował qbba 21.07.2004, 08:30:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Seth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Prosze poprawic temat na bardziej adekwatny do problemu.
Go to the top of the page
+Quote Post
borec
post
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


try this:

  1. <?php
  2.  
  3. $this->dane = preg_replace( &#092;"/<if \"(.*?)\\"=\"(.*?)\">(.*?)</if>/ie\", \"eval(\"return ($this -> warotsci2[1] == 2) ? '3' : '';\")\", $this->dane );
  4.  
  5. ?>


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
Go to the top of the page
+Quote Post
qbba
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 25.10.2002
Skąd: z kabla:)/ czewa

Ostrzeżenie: (10%)
X----


tamto nie działa... bo tam chyba nie ma problemu, jak widać problem stanowi
fragment "\$this -> wartosci2" ponieważ samo "\$wartosci2" dziala.

PS. Temat poprawiony.

edited:
Dodam jeszcze(może ma to jakieś znaczenie), że zmienna $wartosci2 jest w metodzie klasy(ale chcę aby jej nie było.. bo po co dwie takie same zmienne, utworzyłem ją w metodzie, do testów) ta sama zmienna jest także zadeklarowana, na początku całej klasy.

Ten post edytował qbba 21.07.2004, 08:53:23
Go to the top of the page
+Quote Post
-Gość_qbba-
post
Post #5





Goście







jakies pomysly?
Go to the top of the page
+Quote Post
FiDO
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Sprobuj tak:
  1. <?php
  2. preg_replace(&#092;"...\", '($this->warotsci2[\"1\"] == \"2\")?\"3\":\"\" ', $this->dane);
  3. ?>


PS. ostrzezenie za upominanie sie.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
qbba
post
Post #7





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 25.10.2002
Skąd: z kabla:)/ czewa

Ostrzeżenie: (10%)
X----


Wielkie dzięki... działa biggrin.gif.

PS. Sorka za upominanie się... problem był w tym, że to miałem zrobić "na wczoraj" (idiota wlepil mi dodatkowe zadania, a programistą nie jestem tongue.gif).
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 13:19