[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает условие
Truthen
Писал функцию, которая для определенных целей пробегается по строке, проверяет каждый символ, и если это один из нужных, то копирует его в другую строку, либо вставляет в другую строку альтернативный символ.

$result_str = "";
$main_text_len = strlen($main_text);
for($i = 0; $i < $main_text_len; $i++)
{
$c = ord($main_text[$i]);

if($c == 32 || $c == ord('-') || $c == ord('_') || $c == ord('–') || $c == ord('—'))
{
continue;
}
//теперь нам нужно сделать так, что это если это кириллическая буква, которая может быть заменена латинской, то мы заменим ее сразу сами
else if(== ord('а') ||== ord('А') || $c == ord('М') || $c == ord('К') || $c == ord('о') || $c == ord('О'))
{
$result_str .= chr($c - 127);
}
else if(== ord('В'))
{
$result_str .= 'B';
}
else if($c == ord('е') || $c == ord('Е') || $c == ord('р') || $c == ord('Р'))
{
$result_str .= chr($c - 128);
}
else if(== ord('і'))
{
$result_str .= 'i';
}
else if(== ord('І'))
{
$result_str .= 'I';
}
else if(== ord('Н'))
{
$result_str .= 'H';
}
else if($c == ord('с') || $c == ord('С'))
{
$result_str .= chr($c - 142);
}
else if(== ord('Т'))
{
$result_str .= 'T';
}
else if(== ord('у'))
{
$result_str .= 'y';
}
else if($c == ord('х') || $c == ord('Х'))
{
$result_str .= chr($chr - 125);
}
else if($c == ord('г') || $c == ord('ґ'))
{
$result_str .= 'r';
}
else if(== ord('ё'))
{
$result_str .= 'e';
}
else if(== ord('Ё'))
{
$result_str .= 'E';
}
else if(== ord('З'))
{
$result_str .= '3';
}
else if(== ord('п'))
{
$result_str .= 'n';
}
else if(($c >= 33 && $c <= 44) || ($c >= 46 && $c <= 94) || ($c >= 97 && $c <= 122) || ($c >= 124 && $c <= 126) ||== 165 ||== 170 ||== 171 ||== 173 ||
== 175 ||== 185 ||== 186 ||== 187 ||== 191 ||== 193 ||== 195 ||== 196 ||== 198 ||== 200 ||== 201 ||== 203 ||== 207 ||
== 211 ||== 212 || ($c >= 214 && $c <= 223) ||== 225 ||== 226 ||== 228 || (>= 230 && $c <= 237) ||== 242 ||== 244 || ($c >= 246 && $c <= 255) || print($c . '<br>')) //принт здесь для условия не нужен, я просто хотел убедиться, что все условия выполняются
{
$result_str .= $main_text[$i];
}
else
{
echo $main_text[$i] . " — " . $c . "<br>";
$result_str .= '#';
}
}


И дело в том, что каким-то образом некоторые символы, например 'т' (242) или 'м' (236) не подходят под условие, хотя они явно там есть. При этом всем, принт в конце условия выводит именно эти номера (236, 242). Как так?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.