Поставил себе такую задачу - находить в тексте статьи некоторые подстроки и заменять их. В частности, хочу реализовать поиск заголовков других статей в категории. Код выглядит так: Код (PHP): $db = JFactory::getDBO(); $query = "Здесь запрос к базе..."; $db->setQuery( $query ); $list = $db->loadAssocList(); - так я получаю список статей в категории, к которой принадлежит данная статья. В частности, их заголовки $list['title']. Дальше идет обработка текста статьи: Код (PHP): foreach($list as $value) { $insert = "<b>".$value['title']."</b>"; $row->text = str_ireplace($value['title'], $insert, $row->text); } Т.е. в тексте статьи должны жирным выделиться названия других статей. НО! Названия статей как правило даны с большой буквы, а в тексте они так получаются не всегда, поэтому использовал str_ireplace(), что бы не было проблем с регистром. Теперь суть - проблема с регистром осталась. Т.е. когда в тексте находит подстроку "Статья 1", обрамляет ее жирным. а если "статья 1" - пропускает без обработки. Я так понимаю, что это потому что $value['title'] не является строкой в чистом виде, а некоторым объектом, и поэтому не обрабатывается функциями преобразования регистра. По крайней мере, ни в одной функции преобразования регистра это значение не изменяется. Кто-нибудь сталкивался с подобным и если да, то как решали?
Хм. А где мы живем? И как к нам относятся все остальные страны? Правильно, завидуют Поэтому о русском языке и его поддержке в стандартных функциях забудь. Возьми и перепиши функцию str_ireplace под себя.
Да, такой вариант мне в голову как-то не пришел. Спасибо, попробую. Конечный итог изысканий привел к преобразованию текста с помощью функции mb_convert_case(), и регистрозависимой замене текста в 2 прохода. Вобщем, не совсем корректно, но другого варианта все равно не вижу.