Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mini tpl
Forum PHP.pl > Forum > Przedszkole
kicaj
  1. <?php
  2. $a = array( 1, 2, 3 );
  3. $b = array( 'firma1', 'firma2', 'firma3' );
  4. $c = array( 'a@a.pl', 'b@b.pl', 'c@c.pl' );
  5. $d = array( '123', '456', '789' );
  6.  
  7. $x = array( 'id' => $a,
  8. 'company'  => $b,
  9. 'mail' => $c,
  10. 'phone'  => $d );
  11.  
  12. $html = '{@wiersze}
  13.  Linia1: {id};<br>
  14.  Linia2: {company};<br />
  15.  Linia3: <a href=\"mailto:{mail}\">{mail}</a>;<br />
  16.  Linia4: {phone};<br /><br />
  17.  {/@wiersze}';
  18.  
  19. function getRows( $html, $x )
  20. {
  21. preg_match_all( '/({@wiersze})(.*?)({/@wiersze})/is', $html, $matches );
  22.  
  23. preg_match_all( '/({)(.*?)(})/is', $matches[2][0], $match );
  24.  
  25.  
  26. for( $i = 0; $i < count( $x['id'] ); $i++ )
  27. {
  28. foreach( $match[2] as $a => $k )
  29. {
  30. echo '{'. $match[2][$a] .'}' .' - '. $x[$k][$i] .'<br />';
  31. }
  32.  
  33. echo '<br />';
  34.  
  35. }
  36. }
  37.  
  38. echo '<table border=1>';
  39. getRows( $html, $x );
  40. echo '</table>';
  41.  
  42. ?>

Nie moge sobie poradzic zeby to podmienialo prawidłowo!
Efekt ma byc jak stosuje sie w szablonach:)
aleksander
crossposting
zamykam
Bakus
Otrzymałem 6PW z prośbą o usunięcie dubla... odblokowuje
kicaj
...po co sie tak wczuwac w role moderatora, proponuje odpowiedziec odrazu, bedzie mniej postow nie na temat:)

  1. <?php
  2. $a = array( 1, 2, 3 );
  3. $b = array( 'firma1', 'firma2', 'firma3' );
  4. $c = array( 'a@a.pl', 'b@b.pl', 'c@c.pl' );
  5. $d = array( '123', '456', '789' );
  6.  
  7. $x = array( 'id' => $a,
  8. 'company'  => $b,
  9. 'mail' => $c,
  10. 'phone'  => $d );
  11.  
  12. $html = '{@wiersze}
  13.  <tr>
  14. <td colspan=4>&nbsp;</td>
  15.  </tr>
  16.  <tr>
  17. <td>{id} </td>
  18. <td>{company}</td>
  19. <td><a href=\"mailto:{mail}\">{mail}</a></td>
  20. <td>{phone}</td>
  21.  </tr>
  22.  {/@wiersze}';
  23.  
  24. function getRows( $html, $x )
  25. {
  26. $new = '';
  27. $lin = '';
  28.  
  29. preg_match_all( '/({@wiersze})(.*?)({/@wiersze})/is', $html, $matches );
  30.  
  31. preg_match_all( '/({)(.*?)(})/is', $matches[2][0], $match );
  32.  
  33. for( $i = 0; $i < count( $x['id'] ); $i++ )
  34. {
  35. foreach( $match[2] as $a => $k )
  36. {
  37. echo '{'. $match[2][$a] .'}' .' - '. $x[$k][$i] .'<br />'; //wynik prawidlowy
  38.  
  39. $arrName[] = '{'. $match[2][$a] .'}';
  40. $arrValue[] = $x[$k][$i];
  41.  
  42. $new = str_replace( $arrName, $arrValue, $matches[2][0] );
  43. }
  44.  
  45. $lin .= $new;
  46. }
  47.  
  48. echo $lin; // tworzy 3 wiersze, ale dane sa wszedzie takie same!
  49. }
  50.  
  51. echo '<table border=1 width=300>';
  52.  
  53. getRows( $html, $x );
  54.  
  55. echo '</table>';
  56. ?>
Proponuje skopiowac kod i przetestowac u siebie:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.