fork(1) download
  1. <?php
  2.  
  3.  
  4. $text =
  5. "Дым табачный воздух выел.
  6. Комната -
  7. глава в крученыховском аде.
  8. Вспомни -
  9. за этим окном
  10. впервые
  11. руки твои, исступлённый, гладил.
  12. Сегодня сидишь вот,
  13. сердце в железе.
  14. День ещё -
  15. выгонишь,
  16. может быть, изругав.
  17. В мутной передней долго не влезет
  18. сломанная дрожью рука в рукав.";
  19.  
  20. /* Раскладываем стихотворный текст на куски по символу перевода строки. */
  21. $pieces = explode("\n", $text);
  22.  
  23. /* Раскладываем массив с кусками текста на несколько массивов со всеми символами в этих кусках текста. */
  24. $symbols = array();
  25. foreach($pieces as $key => $piece) {
  26. $symbols[$key] = preg_split('//u', $piece, 0, PREG_SPLIT_NO_EMPTY);
  27. }
  28.  
  29. /* Считаем количество символов во всех вложенных массивах в $symbols. */
  30. $count = array();
  31. $countedSymbols = array();
  32. for ($i = 0; $i <= count($symbols); $i++) {
  33. $count = @$symbols[$i];
  34. $count = count($count);
  35. array_push($countedSymbols, $count);
  36. }
  37.  
  38. /* Находим массив с самым большим количеством символов. */
  39. $maxSymbolsLength = max($countedSymbols);
  40.  
  41. /* Сверяем количество символов в других массивах с самым большим массивом, пропускаем через цикл в цикле все массивы, наполняя пробелами те, которые по количеству символов не дотягивают до самого большого массива. */
  42. $space = " ";
  43. $requiredAmount = "";
  44. for($x = 0; $x < count($symbols); $x++) {
  45. $requiredAmount = $maxSymbolsLength - count($symbols[$x]);
  46. for($y = 0; $y < $requiredAmount; $y++) {
  47. array_push($symbols[$x], $space);
  48. }
  49. }
  50.  
  51. /* Выводим построчно первые и последующие символы в массиве $symbols. */
  52. $result = "";
  53. $cell = "";
  54. $verticalLine = " | ";
  55. $carriageReturn = "\n";
  56. for ($x = 0; $x < $maxSymbolsLength; $x++) {
  57. for ($y = 0; $y < count($symbols); $y++) {
  58. $cell = $symbols[$y][$x] . $verticalLine;
  59. $result = $result . $cell;
  60. }
  61. $result = $result . $carriageReturn;
  62. }
  63.  
  64. echo $result;
  65.  
  66. ?>
Success #stdin #stdout 0.04s 52480KB
stdin
Standard input is empty
stdout
Д | К | г | В | з | в | р | С | с | Д | в | м | В | с | 
ы | о | л | с | а | п | у | е | е | е | ы | о |   | л | 
м | м | а | п |   | е | к | г | р | н | г | ж | м | о | 
  | н | в | о | э | р | и | о | д | ь | о | е | у | м | 
т | а | а | м | т | в |   | д | ц |   | н | т | т | а | 
а | т |   | н | и | ы | т | н | е | е | и |   | н | н | 
б | а | в | и | м | е | в | я |   | щ | ш | б | о | н | 
а |   |   |   |   |   | о |   | в | ё | ь | ы | й | а | 
ч | - | к | - | о |   | и | с |   |   | , | т |   | я | 
н |   | р |   | к |   | , | и | ж | - |   | ь | п |   | 
ы |   | у |   | н |   |   | д | е |   |   | , | е | д | 
й |   | ч |   | о |   | и | и | л |   |   |   | р | р | 
  |   | е |   | м |   | с | ш | е |   |   | и | е | о | 
в |   | н |   |   |   | с | ь | з |   |   | з | д | ж | 
о |   | ы |   |   |   | т |   | е |   |   | р | н | ь | 
з |   | х |   |   |   | у | в | . |   |   | у | е | ю | 
д |   | о |   |   |   | п | о |   |   |   | г | й |   | 
у |   | в |   |   |   | л | т |   |   |   | а |   | р | 
х |   | с |   |   |   | ё | , |   |   |   | в | д | у | 
  |   | к |   |   |   | н |   |   |   |   | . | о | к | 
в |   | о |   |   |   | н |   |   |   |   |   | л | а | 
ы |   | м |   |   |   | ы |   |   |   |   |   | г |   | 
е |   |   |   |   |   | й |   |   |   |   |   | о | в | 
л |   | а |   |   |   | , |   |   |   |   |   |   |   | 
. |   | д |   |   |   |   |   |   |   |   |   | н | р | 
  |   | е |   |   |   | г |   |   |   |   |   | е | у | 
  |   | . |   |   |   | л |   |   |   |   |   |   | к | 
  |   |   |   |   |   | а |   |   |   |   |   | в | а | 
  |   |   |   |   |   | д |   |   |   |   |   | л | в | 
  |   |   |   |   |   | и |   |   |   |   |   | е | . | 
  |   |   |   |   |   | л |   |   |   |   |   | з |   | 
  |   |   |   |   |   | . |   |   |   |   |   | е |   | 
  |   |   |   |   |   |   |   |   |   |   |   | т |   |