<?php
error_reporting(-1);
mb_internal_encoding("UTF-8");
$text       = "Хуй свиньи";
$result     = 'Указанная строка - палиндром';
$k          = 0;
// Перевожу всю строку в нижний регистр;
$lowCase    = mb_strtolower($text);
// Конвертирую полученную строку в массив;
$characters = preg_split("//u", $lowCase);
//Прохожусь циклом по каждому элементу массива и удаляю из него пробелы;
foreach ($characters as $number => $character) {
    if ($character == " ") {
        unset($characters[$number]);
    }
}
// "Клею" элементы массива(уже без пробелов) обратно в строку;
$textWithoutSpace = implode("", $characters);
// Считаю длинну всей строки;
$length           = mb_strlen($textWithoutSpace);
echo "Общее количество символов в вводной строке: $length\n";
// Считаю половину длинны с округлением в меньшую сторону;
$halfLength       = floor($length / 2);
//Прохожу циклом половину строки( с начала и с конца);
for ($i = 0,$n=-1; $i <= $halfLength; $i++,$n--) {
    //Параметр для функции mb_substr, определяющий элемент с конца строки;
    $podstroka1 = mb_substr($textWithoutSpace, $i, 1); //Беру 1-й символ с начала;
    $podstroka2 = mb_substr($textWithoutSpace, $n, 1);//Беру 1-й символ с конца;
    $j=$i+1; // Счетчик номера символа с начала строки для вывода на экран ( чтобы нумерация шла не с нуля, но с единицы);
    $f=abs($n); // Аналогично для счетчика с конца строки, дабы значение не было отрицательным;
    //Если симметричо расположенные символы одинаковые - вывожу соответствующее сообщение; 
    if ($podstroka1 == $podstroka2) {
        echo "$j символ с начала строки: [$podstroka1] совпал с симметричным ему $f символом [$podstroka2] c конца строки \n"; 
    } else {
        echo "$j-й символ с начала строки: [$podstroka1] не совпал с симметричным ему $f-ым символом с конца: [$podstroka2] \n";
        $k++; // Иначе же вывожу сообщение и увеличиваю счетчик $k на единицу;
    }
}
//Условием палиндрома является совпадение всех равноудаленных символов с обоих концов строки, если хотя бы раз это условие не выполнится - счетчик $k будет отличаться от нуля, а строка - не будет являться палиндромом;
if ($k == 0) {
    echo "$result\n";
} else {
    echo "$text не является палиндромом\n";
}//Мимо анон-даун, который не может в логику и алгоритмы. Покритикуйте, что ли.
?>