- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ребят, есть необходимость найти в странице контент, который закреплен, условно говоря, между тегами <non1> и <non2>.
То что я покажу ищет это дело только в исходном коде страницы.
А мне очень надо искать данный контент на страницах, которые уже как бы выложены на сайте.
Дело в том, что данный контент подгружается через include и само собой этот скрипт его не видит в исходнике.
Прошу помочь. Хоть намекните что исправить надо?
Понятно, что нужно что то вместо preg_match
Спасибо заранее
А мне очень надо искать данный контент на страницах, которые уже как бы выложены на сайте.
Я бы вместо fopen использовал file_get_contents
Дело в том, что данный контент подгружается через include и само собой этот скрипт его не видит в исходнике.
Не понятно, с адресами все в порядке?
Понятно, что нужно что то вместо preg_match
Единственная проблема с preg_match это ограничение по размеру - не более 100кб
Чтобы сделать поиск по результату выполнения php-файла, нужно этот php-файл выполнить :) А искать по его внутренностям смысла нет.
Выполнить php-файл можно разными способами.
Например, с помощью функции eval или exec.
Единственная проблема с preg_match это ограничение по размеру - не более 100кб
А не скажете, какая подобная функция справится со страницей более 100кб?
postavkin добавил 20.07.2011 в 23:07
;9216775']Чтобы сделать поиск по результату выполнения php-файла, нужно этот php-файл выполнить :) А искать по его внутренностям смысла нет.
Выполнить php-файл можно разными способами.
Например, с помощью функции eval или exec.
Спасибо большое за помощь. Сейчас будем пробовать!
Да нет у preg_match никаких ограничений на длину строки. Можно хоть гигабайт парсить. Если памяти хватит :D
Ограничение есть. Снимается оно простой строчкой ini_set("pcre.backtrack_limit",ХХХХХ);
ХХХХХ - это ваше ограничение. По умолчанию оно 100к.
Ограничение есть. Снимается оно простой строчкой ini_set("pcre.backtrack_limit",ХХХХХ);
ХХХХХ - это ваше ограничение. По умолчанию оно 100к.
Это ограничение на количество операций backtracking-а, а не на размер обрабатываемых данных.
(Такое же ограничение есть на количество рекурсивных операций)
Для проверки возьмите, да пропарсьте файлик мегабайт 10.
Да нет у preg_match никаких ограничений на длину строки. Можно хоть гигабайт парсить. Если памяти хватит
Да, парсить можно.
Для проверки возьмите, да пропарсьте файлик мегабайт 10.
Имелось ввиду не размер файла, а ограничение по размеру искомой комбинации, в данном случае между тегами <non1> и <non2> должно быть меньше 100к, но и это легко обходится.
Да, парсить можно.
Имелось ввиду не размер файла, а ограничение по размеру искомой комбинации, в данном случае между тегами <non1> и <non2> должно быть меньше 100к, но и это легко обходится.
Чтоже вы мне так не верите-то :)
Код:
$str='a'.str_repeat('b',1048576).'c';
echo 'pcre.backtrack_limit = '.ini_get('pcre.backtrack_limit').'<br>';
echo 'strlen($str) = '.strlen($str).'<br>';
if (preg_match('/(ab+c)/',$str,$matches)) {
echo 'strlen($matches[1]) = '.strlen($matches[1]);
}
Результат:
;9217549]Чтоже вы мне так не верите-то
Да я то верю, вы уверены потому-что есть большой опыт, а речь идет конкретно о данном случае.
;9217549]$str='a'.str_repeat('b',1048576).'c'; echo 'pcre.backtrack_limit = '.ini_get('pcre.backtrack_limit').'<br>'; echo 'strlen($str) = '.strlen($str).'<br>'; if (preg_match('/(a(.*?)c)/',$str,$matches)) { echo 'strlen($matches[1]) = '.strlen($matches[1]); }
Понятно что речь идет о количество операций backtracking-а, никто не спорит. Просто так доступнее для понимания - при таком регулярном выражении, будут ошибки если длина между тегами более 100к.
Понятно, что нужно что то вместо preg_match
Единственная проблема с preg_match это ограничение по размеру - не более 100кб
Другими словами, нет, не нужно, проблем нет, тоесть одна решаемая.