<?php
 
error_reporting(-1);
mb_internal_encoding('utf-8');
 
$text = 
"Дым табачный воздух выел.
Комната —
глава в крученыховском аде.
Вспомни —
за этим окном
впервые
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё —

выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.
Няши вот строка для теста.";
 
$lines = explode("\n", $text);
//var_dump($lines);

$longestLineLength = 0;
foreach ($lines as $line) {
	if (mb_strlen($line) > $longestLineLength) {
		$longestLineLength = mb_strlen($line);
	}
}

foreach ($lines as &$line) {
	$line = preg_split('//u', $line, -1, PREG_SPLIT_NO_EMPTY);
} 
//var_dump($lines);
//var_dump($longestLineLength);	

for ($i=0; $i<$longestLineLength; $i++) {
	for ($j=0; $j<count($lines); $j++) {
		if (!isset($lines[$j][$i])) {
			echo "   |";
		} else {
			echo " " . $lines[$j][$i]. " |";
		}
	}
	echo "\n";
}






