|
| |
|
|
| |
для: deman-b
(25.11.2006 в 14:00)
| | | Я окружил
$words=preg_split('/ /', $text, -1, PREG_SPLIT_NO_EMPTY);
флагами, но и с ними диагностика получается непростой. Вот смотрите:
Если упомянутому регулярному выражению предшествует
ini_set("memory_limit", "64M");
то через эту операцию скрипт проходит, то есть регулярное выражение исполняется. Но… выдаваемый результат противоречит здравому смылу! Если в тексте размером 450.000 знаков насчитывается 60.000 слов, то в тексте размером 870.000 знаков насчитывается 40.000 слов! То есть эта функция не зависает, но исполняется неправильно. Может ей 64М мало? | |
| |
|
|
| |
|
|
| |
для: shiva
(25.11.2006 в 13:52)
| | | скорее рег. выражение не справляется) | |
| |
|
|
| |
|
|
| |
для: Владимир55
(25.11.2006 в 13:30)
| | | Попробуйте еще
ini_set("memory_limit", "64M");
|
Хотя вряд ли, на самом деле. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(25.11.2006 в 13:30)
| | | попробуй в альтернативу регулярным выражениям использовать строковые функции....
или как нибудь разбивать текст на блоки по 10000 символов, а потом склеивать результаты..
PS бедныя preg_split() :o) | |
| |
|
|
| |
|
|
| |
для: Alph[p]a
(25.11.2006 в 12:08)
| | | Нет, это не помогло.
Дело в том, что обработка текста размером 300.000 знаков занимает секунд пять-десять, так что и 700.000 должно бы уложиться в 30 секунд, заданных по умолчанию.
Детальные исследования показали, что при больших текстах не исполняется только один оператор. Вот этот:
$words=preg_split('/ /', $text, -1, PREG_SPLIT_NO_EMPTY); | |
| |
|
|
| |
|
|
| |
для: Владимир55
(25.11.2006 в 01:06)
| | | set_time_limit(0); - может поможет | |
| |
|
|
| |
|
|
| | Скрипт, осуществляющий сепарирование текста на отдельные страницы, нормально работает при размере текста в районе 300000 знаков, но зависает при 700000 знаков. Предположительно где-то вот на этих операциях:
$text_ish = file_get_contents($book); //считываем книгу в исходном виде
$text = nl2br($text_ish); // вставляет перед переводами строк <br>.
$words=preg_split('/ /', $text, -1, PREG_SPLIT_NO_EMPTY);
Может, переменные или функции имеют ограничение по размеру? | |
| |
|
|
|