В который раз сидел и исполнял танец с бубном, пытаясь разобраться с обработкой строк при помощи регулярных выражений. Как ни крутил, что не перекодировал, что не пересоздавал, а фраза "This is проверка" в конечном итоге отображалась как "Пров<?><?>...". Потом, интереса ради, вместо preg вписал ereg и всё сразу заработало как надо.
Хотелось бы узнать ответ на 2 вопроса:
1) Что нужно сделать, чтобы выполнить тот же ансамбль, но используя функции preg_* ?
2) Гугл пока "разогревается", а потому спрошу тут: Что означает это философское замечание системы, которое я лицезрею в верхушке сайта при использовании ereg_replace - "Deprecated: Function eregi_replace() is deprecated" ?
Для этого я решил попробовать использовать регулярные выражения, с которыми раньше не доводилось иметь дела. Подскажите пожалуйста, как это можно реализовать?
так воспользовались бы существующими инструментами SVN, Git, Googledocs ... зачем изобретать велосипед?
по той простой причине, по которой под одной крышей обьеденяют, к примеру, форум и Приватные сообщения, если вместо ПМок можно попросту оставить эл. адресс и пользоваться почтовыми клиентами. А именно - для выполнения всех необходимых операций без потребности переключения между отдельными сайтами
сравнение начинается с первого символа и "указатель" постепенно смещается
4 первых символа - одинаковые, а вотдойдя до 5 символа у нас появляются отличия и тут всё зависит от ваших нужд. мы можем пытаться найти символ "а" во второй строке перебирая каждый символ. дойдя до конца и не получив результата. мы возвращаемся к следующему символу - "ф" а указатель у нас как мы помним был на 4 позиции. вот и начинаем перебирать снова все символы во второй строке начиная с 4-го. находим совпадение на 6 символе - перемещаем указатель. сравниваем "ы" - не находим, "а" - тоже.
"в" - находим на 7-позиции. после проходим остальные символы и ничего не находим до конца проходов.
результат получился такой "ждло" "ф" "в". суть думаю ясна
Хех. Именно так и сделал, только разбивку делал по словам
Panoptik пишет:
на счет памяти и мощностей можете сами прикинуть. по идее 50к это ерунда для сервера. но помните что если 2 текста по 50к - это уже около 2.5М - соответственно столько памяти.
если сомневаетесь, попробуйте урезать для начала тексты до 1к и потестить. а после переходить на полные тексты
Хм. Сложно на данном этапе предположить насколько "популярной" будет эта функция в системе, но всёже если предположить что во время сессии(для института пишу инструмент коллективной работы над документом с сохранением версий правок) если пускать через сервер, то нагрузка будет уже ощутимой.
А может ли ктото ткнуть носом в подобный алгоритм, или если возможно, написать его сюда? Знаю что нагловато, но голова уже просто не варит, а реализовать надо.
Да и такой вопрос. Касательно потребления ресурсов системы, один человек посоветовал подобные вычисления выполнять на серверной стороне. Так ли это? Нужно сравнить текст, содержащий приблизительно 50тыс символов(~ 20 А4 страниц)
UPD: Алгоритм таки "родил". На jQuery работает отлично. Но перед внедрением в систему всётаки хотелось бы узнать есть ли разница на чьей стороне его реализовывать: сервер или клиент?
Нужен совет на тему: Как можно реализовать сравнение двух текстов с выводом результата, в виде текста, взятого из первого источника, с выделениями слов(областей) совпадений из второго источника ?
Знаю что прозвучало "туманно", потому попробую отобразить пример:
Текст 1: На улице не идёт снег, а идёт дождь
Текст 2: На улице идёт дождь
Результат: <b>На улице</b> не идёт снег, а <b>идёт дождь</b>
Можно ли такое реализовать на ПХП, или попробовать воспользоваться JS или jQuery?
Нужен ваш совет. Решил написать модуль, который будет создавать в БД большие(имхо) записи, каждая из которых будет содержать до 50 тыс. символов.
В теории БД я конечно не силён, но всёже есть подозрение, что таблица, содержащая сотни подобных записей, в дальнейшем может стать "тяжёлой" в плане прогрузки и отбора нужных записей, в связи с чем возникла идея заранее внедрить механизм, который будет отбирать специальные "устаревшие" записи и переносить их в отдельную таблицу, скажем, "архив".
Будет ли это иметь какойто толк, или же это напрасная трата времени и ресурсов?
сделал вариации условия поиска согласно к-ву слов(не стал вдаваться в подробности с уменьшением к-ва элементов). Вроде бы всё нормально находит. Всем спасибо за информацию
Знаю, что делать 14 запросов ради того, чтобы отыскать человека, маленько попахивает "бредовостью", но интереса ради хотелось бы увидеть как вообще можно реализовать поставленную задачу
f1 like "%bla1%" or f2 like "%bla2%" or f3 like "%bla3%"
я получу "рулон", где хотябы одно из like подошло по условию, то есть на запрос Петя Васячкин Иванов, я получу на кучу всех Васячкинов,Ивановов и Петь. У меня же задача лежит "выловить" всё, постепенно отделяя по одному элементу из массива, тобиш:
f1 like "%bla1%" and f2 like "%bla2" and f3 like "%bla3"
....
f1 like "%bla3%" and f2 like "%bla1%"
...
тоесть сначала я получу все доступные записи по Пети Васячкине Иванове во всех вариациях, потом по Пети Васячкине и т.д.