<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

$text =
"Дым табачный воздух выел.
Комната —
глава в крученыховском аде.
Вспомни —
за этим окном
впервые
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё —
выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.";

main($text);

function prepareTxt($txt) 
{ 
	$txtArr = explode("\n", $txt);

	$txtLines = [];
	foreach ( $txtArr as $line ) {
		array_push($txtLines, rtrim($line));
	}
	
	$lenOfTxtLines = [];
	foreach ( $txtLines as $line ) {
		array_push($lenOfTxtLines, strlen($line));
	}
	$maxLineLen = max($lenOfTxtLines);
	
	$txtLinesPadded = [];
	foreach ( $txtLines as $line ) {
		array_push($txtLinesPadded, str_pad($line, $maxLineLen));
	}
	
	return $txtLinesPadded;
}

function reverseTxt($txt, $delimiter)
{
	$lineLength  = strlen(max($txt));
	$reversedTxt = "";
	foreach ( range(0, ($lineLength - 1)) as $elem ) {
		foreach ( $txt as $chunk  ) {
			$reversedTxt .= $chunk[$elem] . $delimiter;
		}
		$reversedTxt .= "\n";
	}
	return $reversedTxt;
}

function main($txt, $delimiter=" | ") 
{
	$rawTxt = prepareTxt($txt);
	$result = reverseTxt($rawTxt, $delimiter);
	print $result;
	return 1;
}

