Вообщем есть такой пример я его поправил
В методе run я вызываю данные по порядку
1- авторизация
2 -проверка
3- загрузка заказов в 1С
Заказы выводятся структуре xml документа , то есть по ссылке напрямую query получаю структуру xml точно такую же как в примере
Подскажите что нужно делать дальше
class Exchange1c {
private $mode;
private $filename;
public function __construct() {
// принимаем значение mode
$this->mode = $_GET['mode'];
$this->filename = $_GET['filename'];
}
public function run(){
$mode = $this->mode;
if($mode=='checkauth'){
echo "success\n";
echo session_name()."\n";
echo session_id()."\n";
}
elseif($mode=='int'){
$zip = extension_loaded('zip') ? 'yes' : 'no';
echo 'zip='.$zip."\n";
echo "file_limit=0\n";
}
elseif($mode=='query'){
$ex=toorder_1c();
//echo $ex;
echo htmlentities($ex, ENT_QUOTES|ENT_HTML401);
}
$this->$mode();
}//run
/*
* Этап 1. Авторизовываем 1с клиента
*/
public function checkauth() {
echo "success\n";
echo session_name()."\n";
echo session_id()."\n";
exit;
}
/*
* Этап 2. Говрим 1с, умеем или не умеем работать с архивами
* в нашем случае - умеем :)
*/
public function init() {
$zip = extension_loaded('zip') ? 'yes' : 'no';
echo 'zip='.$zip."\n";
echo "file_limit=0\n";
exit;
}
/*
* Этап 3. Принимаем файл и распаковываем его
*/
public function file() {
// вытаскиваем сырые данные
$data = file_get_contents('php://input');
//Сохраняем файл импорта в zip архиве
file_put_contents($this->filename, $data);
// распаковываем
if(file_exists($this->filename)) {
// работаем с zip
$zip = new ZipArchive;
//все в порядке с архивом?
if($res = $zip->open($this->filename, ZIPARCHIVE::CREATE)) {
// распаковываем два файла в формате xml куда-то
// в нашем случае в этот же каталог
$zip->extractTo(__DIR__);
$zip->close();
// удаляем временный файл
unlink($this->filename);
//Всё получилось?
echo "success\n";
exit;
}
}
// если ничего не получилось
echo "failure\n";
exit;
}
/*
* Этап 3
*/
public function import() {
// используем читалку xml
$xml = simplexml_load_file($this->filename);
if($xml && $this->filename == 'orders.xml') {
/// обрабатываете import.xml как простой xml
//Считываете данные, подключаетесь к своей БД, записываете и т.д
//во время работы скрипта можете отправлять progress
// если все успешно закончилось отправляете успех
echo "success\n";
echo session_name()."\n";
echo session_id()."\n";
exit;
}
else{
echo "Ошибка загрузки XML\n";
foreach (libxml_get_errors() as $error) {
echo "\t", $error->message;
}
exit;
}
}
}
session_start();
$exaple = new Exchange1c();
$exaple->run();