buduje system template'ow. robie funkcje . teraz potrzebuje znalezc taki tekst w szablonie i zamienic go zawartoscia pliku. nie znam sie na wyrazeniach regularnych. domyslam sie tylko, ze trzeba uzyc preg_replace(). nic wiecej nie wiem.prosze o pomoc.
Na CVS jest plik template.php
Przyjrzyj się funkcji compile_include_block - wyłapuje ona zapis <!--INCLUDE plik.ext-->
patrzylem wczesniej. wlasciwie caly czas korzystam z tej klasy. moja klasa jest troche inna. zastosowalem kilka innych rozwiazan i chcialbym przy nich pozostac.
$code = preg_replace("/<!--INCLUDE (.*?)-->/i", "<?php \$this->tpl_include('\\1'); ?>", $code);
ten kod mi zostal sprytnie napisany. tagi php i w nich "\1". ja potrzebuje czegos takiego: $this->compiled_code = preg_replace('//', $this->read_file("\1", 'brak pliku'), $this->compiled_code);
oczywiscie to nie dziala.czy mozna to jeszcze w jakis inny spsob zrobic?
Jeśli chcesz wyrażenie łapiące to to będzie:
//
lub z leniwym plusem (wolniejsze)
//
nie zrozumielismy sie.czy ma byc tam nawias czy ni, to akurat najmniej wazne.bardziej mi chodzi o zastapienie tego kawalka kodu. wiem, ze mozna sie odwolywac przez $1. w coyote'cie jest wstawiany w to miejsce kod php. ja tego nie chce. na read_file($"1") nie mam co liczyc, bo to musi byc tam string.drugi parametr musi byc stringiem, wiec chyba preg_replace nie jest dobra funkcja.