<?php
error_reporting(-1);
mb_internal_encoding('utf-8');
$text = "А роза упала на лапу Азора";
$result='палиндром';

$text=mb_strtolower($text);
$text= str_replace(' ', '', $text);//ПОНЯТИЯ НЕ ИМЕЮ КАК ЭТО РАБОТАЕТ, НО ГЛАВНОЕ ЧТО РАБОТАЕТ

echo $text;

$length=mb_strlen($text);
$halfLength=$length; // НЕ ПОНЯЛ ЗАЧЕМ ТУТ НУЖНА БЫЛА ПОЛОВИНА, ПОЭТОМУ СДЕЛАЛ ТАК

$letters = preg_split('//u', $text, null, PREG_SPLIT_NO_EMPTY);//КАК Я ПОНИМАЮ ЭТА ПОЕБЕНЬ СОЗДАЕТ ПУСТЫЕ ЭЛЕМЕНТЫ
$bufhalf=$halfLength;
echo "\n";
for($i=0;$i<=$halfLength;$i++){
	$bufhalf=$halfLength-$i-1;//-1 ЭТО УДАЛЕНИЕ ПУСТОГО ЭЛЕМЕНТА, А НА ПОСЛЕДНИЙ ПЛЕВАТЬ
if(	$letters[$i]==$letters[$bufhalf]){
	echo "YEP! letters=$letters[$i] letters buf=$letters[$bufhalf] \n";
}else echo " NO! letters=$letters[$i] letters buf=$letters[$bufhalf] \n";
}
echo "\n";
echo "Результат: {$result}\n";