Привет. Я начинающий прогарммист и обработку xml DOM не сталкивался раньше.Задача следующая есть три файла xlm надо из них прочитать данные и запросами отправить в бд.Дело в том, что это все происходит в одном скрипте и при обработке обрабарываются только два файла,а третий нет
PHP |
$gz = gzopen ($_SERVER["DOCUMENT_ROOT"]."/discount_cards_data*.gz","r"); $f=fopen($_SERVER["DOCUMENT_ROOT"]."/discount_cards_data*.xml","w"); while (!gzeof($gz)) { fwrite($f,gzread($gz,102400)); } fclose($f); gzclose($gz); $xmlDoc = new DOMDocument('1.0', 'windows-1251'); $xmlDoc->load($_SERVER["DOCUMENT_ROOT"]."/discount_cards_data*.xml"); $res = mysql_query($query); $j=0; $error=false; $x = $xmlDoc->documentElement; $g = $x->childNodes; $values=array(); foreach($g as $item) { if ($item->hasAttributes()) { $currentElement = array(); $currentElement['number'] = $item->getAttribute("C"); $currentElement['discount'] = $item->getAttribute("P"); $currentElement['fio'] = iconv("UTF-8", "cp1251", $item->getAttribute("N")); $currentElement['number']=250000000000+$currentElement['number']; $values[] = "'".$currentElement['number']."','".$currentElement['fio']."','".$currentElement['discount']."'"; if(count($values)===1000) { $query="INSERT INTO `discount_cards_tmp`(`number`,`fio`,`discount`) VALUES(".implode('),(',$values).")"; $res=mysql_query($query); unset($values); } $j++; } } |
два файла по 150000 записей (второй не обрабатывается) затем третий в котором около 40000 обрабатывается и добавляется только 190000.
Помогите.......
комментрарий от
sergeiss просьба использовать специальные тэги для оформления кодов. Кнопки находятся прямо над полем ввода текста.
Спустя 1 час, 25 минут, 27 секунд (21.07.2009 - 12:37) olgatcpip написал(а):
не ругается ни на что?
на max_execution_time, например.
попробуй его увеличить.
PHP |
ini_set("max_execution_time","100000"); |
или там ноль можно поставить, чтобы неограничивать....
Спустя 1 час, 7 минут, 3 секунды (21.07.2009 - 13:44) Guest написал(а):
нет времени хватает, но я грешу на размеры файлов они два по 6,5 Мб и третий 1,3 Мб
делал четыре3 по 4,4 Мб и один 1,3 МБ все равно обрабатывает теперь 3 а один нет походу до 12 Мб
Спустя 16 часов, 8 минут, 39 секунд (22.07.2009 - 05:53) olgatcpip написал(а):
А несколько раз запустить самого себя с разными фалами, прокатывает?