- preg_replace_callback: documentation ( source)
- array_unshift: documentation ( source)
- implode: documentation ( source)
- ctype_space: documentation ( source)
<?php
$string = <<<STRING
PHP is a
widely-used
general-purpose
server side
scripting
language
STRING;
$result = [];
while (!ctype_space($string)) {
$line = [];
$string = preg_replace_callback(
"~.$|^$~m",
function($m) use(&$line) {
$line[] = $m[0] === '' ? ' ' : $m[0];
return '';
},
$string,
);
array_unshift($result, implode(' ', $line));
}
echo implode("\n", $result);