Mavrikii
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору GeRUb начнем с простого - если переходите на уникод, то и содержимое php файлов должно быть в нем (в том числе и spider.php, если пользуетесь). и без BOM (он создает лишние проблемы) - https://ru.wikipedia.org/wiki/Маркер_последовательности_байтов ну и для регулярок, раз используете кириллицу, то лучше указать флаг u, который говорит об использовании уникода. по нормальному, нужно выводить результаты каждого шага при индексации и смотреть где начинает "придумывать". пока не хочу запускать и смотреть, может чуть позже. ps: добавлю еще кое-что.. 1) используйте <?php, а не <? 2) добавьте Код: fwrite($fp_FINFO, pack("CCC", 0xef,0xbb,0xbf)); fwrite($fp_SITEWORDS, pack("CCC", 0xef,0xbb,0xbf)); fwrite($fp_WORD_IND, pack("CCC", 0xef,0xbb,0xbf)); | после открытия в spider, чтобы создавать уникод файлы. 3) измените Код: $html_text = preg_replace("/[^a-zA-Zа-яА-Я$numbers -]/u"," ",$html_text); $html_text = preg_replace("/\s+/us"," ",$html_text); $html_text = mb_strtolower($html_text, 'UTF-8'); | в common_lib по крайней мере это приведет к нормальной записи в файлы. и, в принципе, при работе с уникодом нужно использовать не стандартные функции работы с текстом, а их mbstring аналоги. это если старый php ) | Всего записей: 15687 | Зарегистр. 20-09-2014 | Отправлено: 22:56 27-03-2017 | Исправлено: Mavrikii, 03:57 28-03-2017 |
|