<?php
/*
Дан текст состоящий из нескольких строк, вывести его вертикально
*/
error_reporting(-1);
mb_internal_encoding('UTF-8');
$text =
"Дым табачный воздух выел.
Комната —
глава в крученыховском аде.
Вспомни —
за этим окном
впервые
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё —
выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.";
$lines = preg_split('/\n/iu', $text); // Разбиваем текст на отдельные строки
$lines = array_map('trim', $lines); // Обрезаем лишнее символы
$longestLine = max(array_map('mb_strlen', $lines)); // Находим самую длинную строку
for ($i = 0; $i < $longestLine; $i ++) {
foreach ($lines as $line) {
$char = mb_substr($line, $i, 1);
if ($char == TRUE) {
echo "$char";
} else {
echo " ";
}
echo " | ";
}
echo "\n";
}