…По моему никогда…
Написать пост меня вынудила офигенная вещь в пхп, связанная с regexp‘ами и юникодом.
Возьмем регексп “/[^[:alnum:]]/” (alnum - любая буква или цифра). Он значит буквально следующее: “всё, что не является буквой или цифрой“. Возьмем функцию preg_replace и попробуем из строки, содержащей русские буквы в юникоде удалить “всё, что не является буквой или цифрой“: preg_replace(”/[^[:alnum:]]/”, “”, $string).
По логике вещей - должно работать. С латинскими буквами действительно проблем не возникает. С русскими буквами, если они записаны в Win-1251 тоже… Но запустите у себя на сервере такой скрипт:
<?php
$string = "абвгдеёжзийклмонпрстуфхцчшщьыъэюя";
echo preg_replace("/[^[:alnum:]]/", "", $string);
?>
Причем файл, в котором будет это написано должен быть сохранен в UTF8.
PS. Напомню, что ДОЛЖЕН этот скрипт вывести строку без изменений.





Последние комментарии