Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z preg_replace
Forum PHP.pl > Forum > Przedszkole
qbba
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
Seth
Prosze poprawic temat na bardziej adekwatny do problemu.
borec
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. ?>
qbba
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.
Gość_qbba
jakies pomysly?
FiDO
Sprobuj tak:
  1. <?php
  2. preg_replace(&#092;"...\", '($this->warotsci2[\"1\"] == \"2\")?\"3\":\"\" ', $this->dane);
  3. ?>


PS. ostrzezenie za upominanie sie.
qbba
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).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.