<?php

error_reporting(-1);
mb_internal_encoding('utf-8');

$text = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';

//делает массив с координатами
$leng = mb_strlen($text);
if ($leng<16) {
	exit('Слишком короткий текст.');
}
$radius = ceil($leng/4);
$regexLetters = '/\w/u';
$letters = array();
preg_match_all($regexLetters,$text,$letters);

$angle = 360/$leng;
for ($i=0;$i!=$leng;$i++) {
	$xysym[] = array(
	'x' => round(((sin(deg2rad($angle * $i)) * $radius) + $radius) * 1.1105), 
	'y' => round(cos(deg2rad($angle * $i)) * $radius),
	'sym' => $letters[0][$i]);
}

//рисует круг через echo (echo строчка с самыми большимы координатамипо оси y и тд)
foreach ($xysym as $key => $row) {
	$x[$key] = $row['x'];
	$y[$key] = $row['y'];
	$sym[$key] = $row['sym'];
}
array_multisort($y, SORT_DESC, $x, SORT_ASC, $xysym);
$xlast = 0;
$echoTemp = '';
$ylast = $xysym[0]['y'];
for ($i=0;$i<$leng;$i++) {
	if ($ylast == $xysym[$i]['y']) {
		$xlast = ($xysym[$i]['x'])-$xlast;
		for ($z=0;$z<$xlast;$z++) {
			$echoTemp =$echoTemp.'  ';
		}
		$echoTemp = $echoTemp.$xysym[$i]['sym'];
		$ylast = $xysym[$i]['y'];
		$xlast = $xysym[$i]['x'];
	} else {
		echo $echoTemp."\n";
		$echoTemp = '';
		$xlast = $xysym[$i]['x'];
		for ($z=0;$z<$xlast;$z++) {
			$echoTemp = $echoTemp.'  ';
		}
		$echoTemp = $echoTemp.$xysym[$i]['sym'];
		$ylast = $xysym[$i]['y'];
	}
}
echo $echoTemp."\n";