В общем не на одном форуме мне никто конкретно не помог и нигде ответа я не нашел. От функции, которую я написал выше, я отказался, потому что у меня текст попадается разного размера для отчистки, и если размер входящей переменной метра 2 и в нем много тегов для фильтрации то памяти уходит немерянно. В результате я придумал еще одно решение, которое меня абсолютно устраивает!!!
Принцип в следующем:
1) берем исходный текст и прогоняем его автозаменой
2) Разбиваем переменную на массив split("{kva}", $text);
3) в цикле проверяем каждый элемент массива на наличие <div> и <p>, если не находим, то отчищаем элемент массива.
4) собираем массив (implode("", $text)) в новую переменную!
Вот и все! Работаем просто отлично и памяти ест мало.
Получается, что я запускаю рекурсивную функцию, которая сама строит переменную $content из переменной $old_content. К сожалению я ничего менее ресурсоемкого не придумал.
Спасибо. То что нужно регулярками я догадался, но вот как записать шаблон чтобы нужные данные сохранялись а не удалялись я не знаю. Если бы я удалял то делал бы так:
В принципе то что мне нужно "на сейчас" я получил, но было бы интересно увидить более человеческое решение задачи, так что если кто что придумает - пишите!
Так а кто Вам мещает на второй стринице вставить код с формой и скрытыми инпутами, в которые повписывать переменные с первой стриницы. Только кнопку, которая ведет на 3 страницу, нужно будет в этой форме. В общем чета типа такого:
ALEN
Ну а на некоторых серверах пхп не установлен
Хотя я с Вами согласен, может и не пойти. Но в принципе для общераспространенных серваков вполне подходит.
О, сенкс за ответ. Как вариант вполне ДА! Я пока спать не пошел помнил че хочу от этого скрипта, сейчас же поспал и уже не помню (то ли хотел сделать авто-выборку ключевых слов, то ли еще что-то), зато тоже придумал вариант решения задачи:
1) переводим весь текст в нижний регистр - strtolower($text)
2) разбиваем текст в массив по пробелу - split(" ", $text)
3) дальше уваливаем одинаковые элементы массива и элементы состоящие меньше чем из 4 букв.
4) запускаем в цикле проверку каждого элемента на кол-во вхождений - substr_count(), из результатов создаем ассоциативный массив типа ("слово" => 12)
5) дальше сортируем полученый массив по значениям и выводим первые 10, 15 или еще сколько-то значений.
Ну вот воде и все.
Так же как вариант перед подсчетом кол-во вхождений (substr_count()) можно обрезать каждый элемент массива на 2 последние буквы - это для вариаций окончаний. Правда при таком варианте возможны сбои в результатах, так что я этого не делал.
В общем суть вопроса такова: есть небольшой текст (тысяч на 10 символов) в котором нужно найти 10 наиболее часто встречаемых слов начиная с 3 символов (это чтобы откинуть все "и", "в", "на" и тд). Как это сделать даже придумать не могу.
Если бы искать колличество вхождений конкретного слова в текст то тут проблем нет - substr_count(), но тут же нужно сделать обратный эффект.
Кто знает как решить задачку или хотя бы ориентировочно понимает алгоритм функции, пожалуйста, подскажите! Заранее спасибо.