2015-09-19 2 views
1

Использование php.exe 5.2.17.17 на Windows 7, это:избежать расточительное потребление памяти

include_once('simple_html_dom.php'); 

function fix($setlink) 
{ 
    $setaddr = $setlink->href; 
    $filename="..\\".urldecode($setaddr); 
    $set=file_get_contents($filename); 
    $setstr = str_get_html($set); 
    // Do stuff requiring whole file 
    unset($set); 
    unset($setstr); 
} 

$setindexpath = "..\index.htm"; 
foreach(file_get_html($setindexpath)->find('a.setlink') as $setlink) 
{ 
    fix($setlink); 
} 

(опираясь на внешние файлы данных) терпит неудачу, таким образом:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in [snip]\simple_html_dom.php on line 620 

"Функция фикс" является предложение от ответа на аналогичный вопрос здесь. unset() Желаемое за действительное :-)

Как я могу избежать непрерывного потребления памяти строк, не используемых на следующей итерации цикла? Не слишком сильно меняя код. И предоставляя весь файл как строку.

+0

i bet DOMDocument будет более результативным .. – hanshenrik

ответ

Смежные вопросы