Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z prostym parserem
Cod
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Gdzieś w internecie znalazłem bardzo prosty parser.

[php:1:6a97ad5b05]<?
class template
{
var $unparsed = array(0 => "");
var $parsed = "";
var $blocks = array("default" => "");

function load($plik)
{
$this -> unparsed = @file("templates/".$plik.".tpl");
}

function parse()
{
$this -> parsed = "";
$cnt = count($this -> unparsed);
for($i = 0; $i <= $cnt; $i++)
{
$tekst = $this -> unparsed[$i];
$found = array();
if(preg_match_all("#{(.+?)}#is", $tekst, $found))
{
foreach($found[0] as $block)
{
$block = str_replace("{", "", $block);
$block = str_replace("}", "", $block);
$tekst = str_replace("{".$block."}", $this -> blocks[$block], $tekst);
}
}
$this -> parsed .= $tekst;
}
}
}
?>[/php:1:6a97ad5b05]

Wszystko działa dobrze na necie, możecie zobaczyć http://www.portal.p2.pl. Problem jest na serwerze wirtualnym Xitami. Skrypt działa poprawnie, ale ni stąd, ni z owąd, nad każdym z napisów wyskakuje "Warning: Undefined offset: 6 in E:PROGRAMYXITAMIwebpagesnewincludestemplate.php on line 19". Co mam o tym myśleć?


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post
Wankster
post
Post #2





Grupa: Zarejestrowani
Postów: 208
Pomógł: 0
Dołączył: 19.04.2003

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


a co dajesz do właściwości blocks?
Chodzi mi o
$template->blocks = array( o_to );
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #3





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


[php:1:28f75e9068]<?php
// [...]

for($i = 0; $i < $cnt; $i++)
{

// [...]

}
?>[/php:1:28f75e9068]
Tak powinno być dobrze...


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
Cod
post
Post #4





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Dzięki very much Kameleon. Działa już dobrze smile.gif.

A teraz druga sprawa: Czy ktoś z Was potrafiłby rozbudować ten skrypt, żeby wyświetlał wartości jakiejś tablicy, tak jak w phpBB? Czyli, że podaje się tylko raz kod HTML w odpowiednich znacznikach, a on wyświetla się tyle razy, ile pól ma tablica. Byłbym dźwięczny winksmiley.jpg.


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
Go to the top of the page
+Quote Post
Cudi
post
Post #5


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Na tej samej stronie z której masz ten kod jest równierz bardziej rozbudowany parser, tego samego autora, który ma if'y, sekcje, subsekcje i inne zabawki.
Go to the top of the page
+Quote Post
Cod
post
Post #6





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Hmmm... Czy myślimy o tej samej stronie i tym samym artykule? http://webcity.pl/artykuly.php/t/5? Jeśli tak, to ja tam za Chiny nie mogę znaleźć tego, o czym piszesz sad.gif. Jeśli byłbyś taki miły, pomóż koledze i zapodaj dokładnego linka biggrin.gif.


--------------------
Cod | codslfc@o2.pl | gg#1405724 | www.footbag.p2.pl
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: 21.08.2025 - 13:57