- mb_substr: documentation ( source)
- mb_strlen: documentation ( source)
- error_reporting: documentation ( source)
- explode: documentation ( source)
- max: documentation ( source)
- mb_internal_encoding: documentation ( source)
<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text =
"Дым табачный воздух выел.
Комната —
глава в крученыховском аде.
Вспомни —
за этим окном
впервые
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё —
выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.";
$lengthsOfStrings = [];
$lengthOfLongestString = 0;
$numberOfStrings = 0;
$strings = explode("\n", $text);
foreach ($strings as $string) {
$lengthsOfStrings[] = mb_strlen($string);
}
$lengthOfLongestString = max($lengthsOfStrings);
$numberOfStrings = count($strings);
for ($c=0; $c < $lengthOfLongestString; $c++) {
for ($s=0; $s < $numberOfStrings; $s++) {
$char = mb_substr($strings[$s], $c, 1);
if ($char) {
echo "{$char} |";
} else {
echo " |";
}
}
echo "\n";
}