- mb_substr: documentation ( source)
- mb_strlen: documentation ( source)
- error_reporting: documentation ( source)
- preg_split: documentation ( source)
- mb_internal_encoding: documentation ( source)
<?php
/*
Дан текст состоящий из нескольких строк, вывести его вертикально
*/
error_reporting(-1);
mb_internal_encoding('UTF-8');
$text =
"Дым табачный воздух выел.
Комната —
глава в крученыховском аде.
Вспомни —
за этим окном
впервые
руки твои, исступлённый, гладил.
Сегодня сидишь вот,
сердце в железе.
День ещё —
выгонишь,
может быть, изругав.
В мутной передней долго не влезет
сломанная дрожью рука в рукав.";
$sentences = preg_split('/\r\n/iu', $text);
$maxLengthSentence = 0;
/* Определение самой длинной строки в тексте */
foreach ($sentences as $sentence) {
$lenSen = mb_strlen($sentence);
if ($lenSen >= $maxLengthSentence) {
$maxLengthSentence = $lenSen;
}
}
for ($i = 0; $i < $maxLengthSentence; $i ++) {
for ($j = 0; $j < count($sentences); $j ++) {
$char = mb_substr($sentences[$j], $i, 1);
if ($char == TRUE) {
echo "$char";
} else {
echo " ";
}
echo " | ";
}
echo "\n";
}