Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prosty parser szablonów, Dlczego wiecznie array?
blind fish
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.08.2004

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


No więc piszę (albo raczej próbuję) napisac prosty parser szablonów.. Oto jego prosty kod:
  1. <?
  2. class szablon {
  3. //start class szablon
  4. var $nieprzetworzony;
  5. var $nazwa;
  6. var $wartosc;
  7. function laduj($plik) {
  8. //start laduj()
  9. $this->nieprzetworzony = @file($plik);
  10. //koniec laduj()
  11. }
  12. function dodaj($nazwa, $wartosc) {
  13. //start dodaj()
  14. $this->nazwa[] .= &#092;"{\".$nazwa.\"}\";
  15. $this->wartosc[] .= $wartosc;
  16. //koniec dodaj()
  17. }
  18. function pokaz() {
  19. //start pokaz()
  20. return str_replace($this->nazwa, $this->wartosc, $this->nieprzetworzony);
  21. //koniec pokaz
  22. }
  23. //koniec class szablon
  24. }
  25. ?>

Ładuje plik, dodaję opcję i pokazuję to w prosty sposób:
  1. <?
  2. require(&#092;"dd.php\");
  3. $tpl = new szablon;
  4. $tpl->laduj(&#092;"index.tpl\");
  5. $tpl->dodaj(&#092;"sex\", \"male\");
  6. echo $tpl->pokaz();
  7. ?>

I otórz jedyne co mi się pokazuje to zamiast opcji {sex} podmienionej na "male" widze tylko "Array". Dlaczego i jak to ominąć by mi wszystko pokazywało ok?

Ten post edytował blind fish 29.10.2004, 23:35:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Vengeance
post
Post #2





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


  1. <?php
  2.  
  3. class Szablon
  4. {
  5.  var $blocks;
  6.  
  7.  function Szablon()
  8.  {
  9. $this->blocks = array();
  10.  }
  11.  
  12.  function assign($key, $value)
  13.  {
  14. $this->blocks[$key] = $value;
  15.  }
  16.  
  17.  function fetch($filename)
  18.  {
  19. if(!file_exists($filename))
  20.  die('Plik z szablonem ('.$filename.') nie istnieje');
  21. $read = join('', file($filename));
  22. foreach($this->blocks as $key => $value)
  23. {
  24.  $read = str_replace('{'.$key.'}', $value, $read);
  25. }
  26. return $read;
  27.  }
  28. }
  29.  
  30. ?>


i porownaj sobie co masz zle.
Go to the top of the page
+Quote Post
blind fish
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 7.08.2004

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


Odkryłem że nie diała gdyż w zły sposób ładuje plik (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Thx, nie znałem funkcji join(), choć zanim zobaczyłem twoją odpowiedź zastosowałem impode() (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale jak zauważyłem to tylko alias dla funkcji dla imlode (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował blind fish 30.10.2004, 00:26:53
Go to the top of the page
+Quote Post
MoD
post
Post #4





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


Zawsze można jeszcze użyć file_get_contents, wtedy odpuścisz sobie łączenia tablicy.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 14:07