Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kolorowanie + zawijanie wierszy
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Bielo
Prosta funkcja, działająca jak BBCode \[php\] z tym że dodatkowo oznacza zawinięcie wierszy.

  1. <?php
  2. define('COLUMNS', 120);
  3. function formatuj($text)
  4. {
  5. $text = wordwrap($text, COLUMNS, '[&]');
  6. $text = explode(&#092;"rn\", $text);
  7. ?>
  8. <table style=\"border: solid #000000 1px\">
  9. <tr>
  10. <td style=\"background-color: #cccccc\">
  11. <code>
  12. <?
  13. for($i = 0; $i < count($text); $i++)
  14. {
  15. print(($i+1).'<br />');
  16. for($l = 0; $l < substr_count($text[$i], '[&]'); $l++)
  17. {
  18. print('^<br />');
  19. }
  20. }
  21. ?>
  22. </code>
  23. </td>
  24. <td>
  25. <?
  26. for($i = 0; $i < count($text); $i++)
  27. {
  28. //print(substr($text[$i], 0, COLUMNS).'<br />');
  29. /*while(strlen($text[$i] = substr($text[$i], 0, COLUMNS)) > COLUMNS)
  30. {
  31. print(substr($text[$i], COLUMNS).'<br />');
  32. }*/
  33. print(highlight_string(str_replace('[&]', &#092;"n\", $text[$i]), TRUE).'<br>');
  34. }
  35. ?>
  36. </td>
  37. </tr>
  38. </table>
  39. <?
  40. }
  41. ?>
Bakus
Muszę przyznać, że to dość ciekawe podejście do problemu... szkoda, że nie działa...

Poza samym faktem konieczności uruchomienia w/w kodu proponował bym zmienić definicję funkcji i 1 linijkę oraz usunąć define():
  1. <?php
  2. // define('COLUMNS', 120);
  3. // nowa definicja - tekst przez referencję i ilość kolumn jako parametr
  4. function formatuj(&$text, $columns)
  5. {
  6. // dla konsekwencji: COLUMNS => $columns
  7. $text = wordwrap($text, $columns, '[&]');
  8. ?>
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.