setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $e) { echo 'Ошибка соединения: ' . $e->getMessage(); Exit(); } /*$res = $db->query('select * from _Users'); //Записываем id типов столбцов for($i=0;$i<$res->columnCount();$i++) { $meta = $res->getColumnMeta($i); print $meta['name'].'='.$meta['native_type'].' '; }*/ $res0 = $db->query('select ss.id,ss.host from "_SynServices" ss where ss.del=false order by ss.host'); while ($row0 = $res0->fetch(PDO::FETCH_ASSOC)) { //Так как время может быть различно получаем время с сервера с которого хотим обновится $time = file_get_contents($row0['host'].'?fn=0'); $sql='select so.id,so.name,so.limit,coalesce(so."time",0) "time","getDate2000"() date2000 from "_SynObjects" so where so.del=false and so.synservice_id=\''.$row0['id'].'\' and '.$time.'-coalesce(so."time",0)>"interval" order by so.sort'; $res1 = $db->query($sql); while ($row1 = $res1->fetch(PDO::FETCH_ASSOC)) { $host=$row0['host'].'?fn=1&n='.$row1['name'].'&s='.$row1['time'].'&l='.$row1['limit']; //Не знаю на сколько хорошо работает функция copy но пока ничего лучше ненашел if(copy( $host, 'data.zip' )) { //Извлекаем данные из таблицы если запись существует то обновляем если нет то вставляем $zip = new ZipArchive(); if ($zip->open('data.zip') !== true) { //fwrite(STDERR, "Error while openning archive file"); echo "ZIP error!"; exit(1); } //Перебираем файлы архива for($i=0;$i<$zip->numFiles;$i++) { $time=0; //Запишется макс время пришедших данных (потому что данные приходят частями) $name=$zip->getNameIndex($i); //if($name!='2_GoodsImages.tbl') break; echo '
'.$name.'
'; $fp = $zip->getStream($name); /*$fpr = $zip->getStream($name); $fpw = fopen($name, 'w'); fwrite($fpw, stream_get_contents($fpr)); fclose($fpr); fclose($fpw);*/ $tbl= new TCTable('',0); //$tbl->OpenTableF($name); $tbl->OpenTableH($fp); while($tbl->ReadNextRecord()) { for($j=0;$jfields);$j++) { print $tbl->fields[$j]->name.'='.$tbl->fields[$j]->getValue().'
'; } } //fclose($fp); } $zip->close(); } } } ?>