Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Proba napisania wlasnego parsera
Diablos
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


  1. <?php
  2. $string = 'sadsad<!-- BEGIN users -->{$login} - {$haslo}<br><!-- END users -->';
  3.  
  4. $array = array( 
  5. 'users' => array( 
  6. array ('login' => 'Kamil',
  7.  'haslo' => 'asdsad'
  8. ), 
  9. array ('login' => 'Cyprian', ,
  10.  'haslo' => 'sadad'
  11. ) 
  12.  ),
  13. 'ksiega' => array( array ('author' => 'asdasd' ), array ('author' => 'asdasd2' ) ) );
  14. print_r($array);
  15.  
  16.  
  17.  
  18. foreach( $array as $section_key => $section )
  19. {
  20. $match = "#<!-- BEGIN $section_key -->(.*?)<!-- END $section_key -->#si";
  21. preg_match($match, $string, $matched);
  22. $result = '';
  23.  
  24. foreach ( $section as $zmienna )
  25. {
  26. foreach ( $zmienna as $wynik => $fack )
  27. {
  28. $cos = preg_replace('#{$' . $wynik . '}#si', $fack, $matched[0]);
  29. }
  30.  
  31. $result .= $cos;
  32. echo $cos;
  33. }
  34. }
  35. $string = preg_replace($match, $result, $string);
  36. echo $string;
  37. ?>


Tak przebiegaja moje przygotowania do napisania zgrabnego (?) ;p własnego systemu szablonow. W czym problem?
Chciałem aby obie zmienne w pliku z szablonem {$haslo} i {$login} zostaly zamienione ... na przypisane im wartosci. Poniewaz wartosci jest kilka kombinowalem z sekcjami i robilem petle.
Prawie działa z tym, ze:
w wyniku pracy powyzszego kodu zamiast:
Kod
Kamil - asdsad
Cyprian - sadad


otrzymuje:

Kod
{$login} - asdsad
{$login} - sadad


Kombinowalem juz sporo, nie wiem czemu nie chce dzialc poprawnie i gdzie jest blad.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Diablos
post
Post #2





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

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


dtb:

dzieki twojemu rozwiazaniu otrzymuje:
Kod
sadsadKamil - asdsad
Kamil - asdsad


Nie do konca dziala jak trzeba :/

Dzieki za kilka cennych uwag.
Go to the top of the page
+Quote Post

Posty w temacie


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: 23.08.2025 - 22:10