ďťż
Podstrony
|
telcocafeznalazłem sobie taki parser:<?php class simpleTemplate { var $toChange; var $str; function simpleTemplate() { $this -> toChange = array(); $this -> str = ''; } function setTemplate($ATemplate) { $this -> str = $ATemplate; } function loadFromFile($AFileName) { $this -> str = file_get_contents($AFileName); } function addChange($AKey, $AValue) { $this -> toChange[$AKey] = $AValue; } function executeChanges() { if (count($this -> toChange) > 0) { $tmpKeys = array_keys($this -> toChange); foreach ($tmpKeys as $currentKey) { $this -> str = str_replace($currentKey, $this -> toChange[$currentKey], $this -> str); } } return $this -> str; } } ?> teraz daje to: include_once('parser.php'); $st = new simpleTemplate(); $st -> loadFromFile('templates/template/szablon.tpl'); $st -> addChange('{title}', page_title); $st -> addChange('{login_form}', login_form"); $st -> addChange('{banner}', page_banner); $st -> addChange('{content}', page_content); $st -> addChange('{menu_left}', page_menu_r); $st -> addChange('{menu_right}', page_menu_l); $st -> addChange('{footer}', page_footer); echo $st -> executeChanges(); wszystko jest ok oprócz tego ze znaczniki php są pokazywane jako html tzn jezeli dam przykładowo stałej login_form wartość <? include("loginform.php") ?> to na stronie pojawi mi się napis <? include("loginform.php") ?> (kiedy sie podejrzy zrodło to jest to samo) Co mam robić? skąd ty masz ten parser? znalazłem sobie taki parser: Co mam robić? Uzywać <?php zamiast <? . Uzywać <?php zamiast <? . to samo marines: z google ;] z jakiegoś forum to logiczne że nie z drzewa :> ale własnie chodzi o konkretne źródło Jak chcesz zrobić w ten sposób musisz zwrócić: return eval($this->str); ale jakoś nie polecam tej opcji Jak chcesz zrobić w ten sposób musisz zwrócić: return eval($this->str); ale jakoś nie polecam tej opcji jak tak robie to wywala mi błąd: Parse error: parse error, unexpected '<' in C:\Program Files\WebServ\httpd\v\parser.php(40) : eval()'d code on line 2 Niedokładnie przepisałeś. Ma być return eval($this->str). Użytkownik pbnan edytował ten post 31 październik 2006, 18:43 Niedokładnie przepisałeś. Ma być return eval($this->str). dobrze przepisałem omg: twoje: return eval($this->str); kodie: return eval($this->str); widzisz jakąś różnice? bo ja nie Tak, widzę to, co Ci zwraca parser... Jeśli nie tu, to w innym miejscu. @down: teraz sprawdziłem, właśnie w tym miejscu, w miejscu zwracania masz coś pokombinowane. Tak mówi parser. Użytkownik pbnan edytował ten post 31 październik 2006, 19:31 Tak, widzę to, co Ci zwraca parser... Jeśli nie tu, to w innym miejscu. no to w którym? Parser sie wywala bo znowu jest otwarcie tagów <?php. Po prostu - nie jest to potrzebne. Zostaw samo include. (i podobnie rób w innych miejscach). ew. zamiast eval użyj: ob_start(); include($this->tpl); $contents = ob_get_contents(); ob_end_clean(); Parser sie wywala bo znowu jest otwarcie tagów <?php. Po prostu - nie jest to potrzebne. Zostaw samo include. (i podobnie rób w innych miejscach). teraz jest taki problem: mam taki szablon: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>{title}</TITLE> <META http-equiv="Content-Type" content="text/html; charset=windows-1250"> </HEAD> <BODY> <table border="0"> <tr><td width="25%">{login_form}</td><td>{content}<td></tr> </table> </BODY> </HTML> a jak wyświetlam strone to mam coś takiego: FORMULARZ LOGOWANIABANNERTRESCMENU PRAWEMENU LEWESTOPKA 1 1 żródło: FORMULARZ LOGOWANIABANNERTRESCMENU PRAWEMENU LEWESTOPKA<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>Kochan Company</TITLE> <META http-equiv="Content-Type" content="text/html; charset=windows-1250"> </HEAD> <BODY> <table border="0"> <tr><td width="25%">1</td><td>1<td></tr> </table> </BODY> </HTML> Użytkownik PiKey edytował ten post 01 listopad 2006, 09:23 |
|||
Sitedesign by AltusUmbrae. |