Проблема PHP с preg_replace - PullRequest
0 голосов
/ 22 июня 2010

Я создал функцию для получения простого текста из HTML путем удаления JavaScript, CSS, тегов HTML и т. Д. Для этого я использовал функцию preg_replace в PHP для удаления определенных шаблонов.Веб-страницы уже хранятся на жестком диске, поэтому я беру исходный код с диска.Функция работает правильно для исходного кода из отдельных файлов, однако, если я добавляю исходный код нескольких файлов и передаю его в свою функцию, то функция preg_replace завершается ошибкой и возвращает FALSE.Я попытался get_last_error, но ничего не сообщалось.Я также обрезаю исходный код перед конкатенацией (для удаления EOF).

Пожалуйста, расскажите также, как реализованы регулярные выражения в Windows, потому что в отличие от Linux в Windows нет grep.

Ответы [ 2 ]

1 голос
/ 22 июня 2010

Если у вас длинные HTML-файлы, семейство функций preg вернет false из-за ограничения возврата в PHP (проверьте здесь: http://bugs.php.net/bug.php?id=40846).

Вы можете попробовать поработать надменьшие части файлов и объединяйте их после удаления тегов.

Также вы можете оптимизировать свои регулярные выражения, чтобы не использовать так много возвратов, если вы сильно полагаетесь на. *.Например,

/<.*?>/

Может быть оптимизировано как

/<[^>]+>/

И т. Д.

1 голос
/ 22 июня 2010

Вы смотрели на встроенную в PHP функцию strip_tags () ?

В противном случае мы не знаем, что на самом деле делает ваш код, поэтому очень трудно определить, почему он работает не так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...