- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Регулярное выражение для preg_replace очень объёмное - порядка 2кб. Состоит из фрагментов, которые надо удалять, наподобие:
$content=preg_replace("/ab|cd|ef|...../","",$content);
Скрипт отрабатывает в среднем за 1 секунду на локалхосте, на хостинге - быстрее, но при определённом объёме входных данных ($content) функция preg_replace выдаёт пустой результат. На локалхосте выдаёт всегда нужный. В чём может быть дело? Лимит памяти большой, в тайм лимит укладывается, в чём ещё может быть причина того, что функция preg_replace на определённом объёме данных выдаёт пустой результат? При этом скрипт не останавливается, а продолжает работать дальше.
Собственно, по основному вопросу не могу ответить, но может, если ab, cd и т.д. - не паттерны, а прямые строки - попробовать str_replace и передавать ей как параметр массив, может это косвенно решит проблему?
str_replace - не получится, там нужно удалять куски перед и после искомого фрагмента. Может preg_replace в цикле? :) Поделил регулярку на 4 части - странно, но это не помогло.
На локалхосте скрипт выполняется за 1.2-1.5 секунд, на хостинге - за 0.03, входной контент, который надо перелопатить - 60кб. Вроде бы, не такой уж и большой объём. Буду исследовать работу данной регулярки на других функциях.
Посмотрите на http://bugs.php.net для preg_replace и версии пхп и ОС, которая на хостинге, может найдётся что-то непофиксенное.
C некоторых пор в php появилась настройка pcre.backtrack_limit. Может быть ваши данные иногда превышают 100кб?