kombo
Новичок
Вытаскиваем регион, город по индексу из dbf
для начала, дабы предупредить недоуменные вопросы объясняю
1) в mysql не делаю потому что дамп в базу не лезет, а сидеть дробить... пока думаю обойтись меньшей кровью
2)dbase функции не использую т.к. mod_dbase у хостера не подключен.
Итак, есть файл dbf с почтовыми индексами, каких либо разделителей строк и полей в нем я не нашел, поэтому читаю его целиком в строку и в ней вырезаю побитно нужные места. Все бы хорошо, но в одном наборе полей относящихся к одному почтовому отделению указано два индекса, свой и тот кому отделение подчиняется, соответственно запись одного индекса в файле не уникальна, по некоторым признакам можно выделить нужную из них.
Вобщем вот код с рекурсивной функцией, почему на выделенную строку php ругается как Allowed memory size of 134217728 bytes exhausted (tried to allocate 19360290 bytes) ?
для начала, дабы предупредить недоуменные вопросы объясняю
1) в mysql не делаю потому что дамп в базу не лезет, а сидеть дробить... пока думаю обойтись меньшей кровью
2)dbase функции не использую т.к. mod_dbase у хостера не подключен.
Итак, есть файл dbf с почтовыми индексами, каких либо разделителей строк и полей в нем я не нашел, поэтому читаю его целиком в строку и в ней вырезаю побитно нужные места. Все бы хорошо, но в одном наборе полей относящихся к одному почтовому отделению указано два индекса, свой и тот кому отделение подчиняется, соответственно запись одного индекса в файле не уникальна, по некоторым признакам можно выделить нужную из них.
Вобщем вот код с рекурсивной функцией, почему на выделенную строку php ругается как Allowed memory size of 134217728 bytes exhausted (tried to allocate 19360290 bytes) ?
PHP:
$f_content=file_get_contents($db_path);
function lookString($content) {
global $f_content;$f_content='';
$content=strstr($content, $_GET["ind"]);
if(!$content) return false;
$r=substr($content, 0,436);
$arr[0]=trim(substr($r,-14));
if (!eregi("(^[0-9]{8}$)|(^[0-9]{14}$)", $arr[0])) {
$len=strlen($content);
$content=substr($content, 6,$len-6); // -------------------------------ругается здесь
lookString($content);
}
else return $r;
}
$r=lookstring($f_content);
$arr[1]=substr($r,122,60);
$arr[2]=substr($r,182,60);
$arr[3]=substr($r,242,60);
$arr[4]=substr($r,302,60);

Жива ошибка опять