Klasa templates 1.2.4.1

0

Używam klasy templates 1.2.4.1, z jakiegoś starszego coyote.

Najnowsza klasa - ta z if'ami, opisana w dokumentacji jest dużo lepsza, ale nie nadaje sie do "odcięcia".
btw. myśle ze gdyby ktoś pokusił sie o dostosowanie jej do używania bez reszty coyot'a, mogła by sie cieszyć dużym zainteresowaniem!

W każdym razie ta starsza klasa miała linijkę

return str_replace(Array("\r", "\n"), '', @join('', @file($file_name)));

gdy zamienię ją na

return @join('', @file($file_name));

wycinanie bloków (metoda rm) przestaje działać.

      function rm($regexp)
      {
          $this->result_data = preg_replace("/$regexp/i", '', $this->result_data);
      }

Pytanie brzmi: dlaczego \n\r przeszkadzają w działaniu parsera? Czy ktoś może mi pomóc w przerobieniu tego tak aby generowany przez skrypt kod nie był jedną linijką?

0
Kooba napisał(a)

Pytanie brzmi: dlaczego \n\r przeszkadzają w działaniu parsera?
Kwestia parametrów w wyrażeniu regularnym.
Zastosowane wartości sprawiają, że . nie łapie końca linii.
A ponieważ rm() wycina '/BEGIN_COS.*?END_COS/' to jeśli między BEGIN_COS a END_COS znajdzie się \r lub \r to ciąg nie zostanie dopasowany do wyrażenia.

Możesz dla swoich potrzeb dodać modyfikator, aby . łapało \r i \n - więcej w manualu php.

0
Marooned napisał(a)

Możesz dla swoich potrzeb dodać modyfikator, aby . łapało \r i \n - więcej w manualu php.

Moge prosić o podpowiedź ? :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1