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. main($text);
  21.  
  22. function prepareTxt($txt)
  23. {
  24. $txtArr = explode("\n", $txt);
  25.  
  26. $txtLines = [];
  27. foreach ( $txtArr as $line ) {
  28. array_push($txtLines, rtrim($line));
  29. }
  30.  
  31. $lenOfTxtLines = [];
  32. foreach ( $txtLines as $line ) {
  33. array_push($lenOfTxtLines, strlen($line));
  34. }
  35. $maxLineLen = max($lenOfTxtLines);
  36.  
  37. $txtLinesPadded = [];
  38. foreach ( $txtLines as $line ) {
  39. array_push($txtLinesPadded, str_pad($line, $maxLineLen));
  40. }
  41.  
  42. return $txtLinesPadded;
  43. }
  44.  
  45. function reverseTxt($txt, $delimiter)
  46. {
  47. $lineLength = strlen(max($txt));
  48. $reversedTxt = "";
  49. foreach ( range(0, ($lineLength - 1)) as $elem ) {
  50. foreach ( $txt as $chunk ) {
  51. $reversedTxt .= $chunk[$elem] . $delimiter;
  52. }
  53. $reversedTxt .= "\n";
  54. }
  55. return $reversedTxt;
  56. }
  57.  
  58. function main($txt, $delimiter=" | ")
  59. {
  60. $rawTxt = prepareTxt($txt);
  61. $result = reverseTxt($rawTxt, $delimiter);
  62. print $result;
  63. return 1;
  64. }
  65.  
  66.  
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
Standard output is empty