[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с ошибкой!
kvasko_linuxoid
PHP
$matFile fopen($path_to_matList"r");
            
$matCont fread($matFilefilesize($path_to_matList));
      
fclose($matFile); 
      
      
$matArr = array();
      
$buffer 0;
      
      while (
$matCont != "") {            // sozdanie massiva matov iz faila.
            
$mat_word substr($matCont0strpos($matCont" "));       
            
$matArr[$buffer] = $mat_word;
            
$buffer++;
            
$matCont str_replace($mat_word""$matCont);
      }

на что интерпретатор выводит:
Цитата
mat 2mat
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) in Z:\home\mat_filter.ru\www\index.php on line 21

не можете помочь разобраться, в чем ошибка и объяснить, а то работа горит, времени нет до конференции sad.gif



Спустя 42 минуты (10.02.2009 - 21:20) LoneCat написал(а):
Этот универсальный алгоритм сжирает 128 метров оперативки, максимальный лимит, установленный по-умолчанию в php smile.gif Вообще первый раз вижу такую прелесть smile.gif я-бы вот лично сделал так:
PHP
$matArr explode(' 'file_get_contents($path_to_matList));

А в случае если файл действительно большой - сделал-бы чтение из файла блоками.

Спустя 15 минут, 10 секунд (10.02.2009 - 21:35) sergeiss написал(а):
explode - это верно, конечно. Но как я понял по логике написанного, там в файле одна строка, в которой через пробелы написаны слова.
Так почему бы не заменить эти пробелы на знак "новая строка" (в исходном файле)? Тогда можно будет считать весь файл одной строкой сразу же в массив
PHP
$matArr=file($path_to_matList);
И этого будет достаточно!!! Не надо никаких циклов, дополнительных переменных...

Спустя 16 минут, 35 секунд (10.02.2009 - 21:52) LoneCat написал(а):
Цитата (sergeiss @ 10.02.2009 - 22:35)
explode - это верно, конечно. Но как я понял по логике написанного, там в файле одна строка, в которой через пробелы написаны слова.
Так почему бы не заменить эти пробелы на знак "новая строка" (в исходном файле)? Тогда можно будет считать весь файл одной строкой сразу же в массив
PHP
$matArr=file($path_to_matList);
И этого будет достаточно!!! Не надо никаких циклов, дополнительных переменных...

Ну если брать на себя смелость изменять условия задачи - то это конечно еще удобнее smile.gif

Спустя 6 минут, 30 секунд (10.02.2009 - 21:58) sergeiss написал(а):
Это не смелость smile.gif А предложение автору вопроса облегчить свою жизнь wink.gif Потому что, судя по написанному им тексту, он не совсем проникся духом ПХП. У него как-то "по-Сишному" написано.
А я ему подсказываю, что тут есть и другие возможности.

Спустя 9 часов, 21 минута, 19 секунд (11.02.2009 - 07:20) kvasko_linuxoid написал(а):
10x. Я просто ученик 7 класса, поэтому у меня по-сишному и написано wink.gif
ЗЫ Я и не знал про замечательную функцию explode smile.gif

Спустя 4 часа, 13 минут, 42 секунды (11.02.2009 - 11:33) sergeiss написал(а):
Цитата (kvasko_linuxoid @ 11.02.2009 - 07:20)
ЗЫ Я и не знал про замечательную функцию explode smile.gif

Но обрати еще пристальное внимание на не менее замечательную функцию file(), про которую я говорил.

Спустя 22 часа, 22 минуты, 6 секунд (12.02.2009 - 09:55) kvasko_linuxoid написал(а):
ок. Гугл мне в помощь! rolleyes.gif

Спустя 1 год, 9 месяцев, 18 дней, 13 минут, 22 секунды (30.11.2010 - 10:09) Guest написал(а):
А как блоками читать?

Спустя 59 минут, 44 секунды (30.11.2010 - 11:08) Basili4 написал(а):
fread


_____________
God is real, unless declared as integer
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.