Всем привет!
Есть команда: /usr/bin/wget -q -O /dev/null /var/www/sibirix2/data/www/сайт.ru/12dev/quantity/index_modef.php
Содержимое index_modef.php:
Если запустить страницу в браузере, то он отрабатывает и добавляет запись в таблицу. Крон никак не реагирует.
Помогите разобраться. Ответов в сети не нашел.
p.s.: можно ли оптимизировать мой рнр и насколько он является корректным?
Есть команда: /usr/bin/wget -q -O /dev/null /var/www/sibirix2/data/www/сайт.ru/12dev/quantity/index_modef.php
Содержимое index_modef.php:
Код |
---|
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("QUANTINA"); ?> <main class="catalog-page category-catalog-page quantity_page_style centering" id="start"> <? function xml2assoc(&$xml){ $assoc = array(); $n = 0; while($xml->read()){ if($xml->nodeType == XMLReader::END_ELEMENT) break; if($xml->nodeType == XMLReader::ELEMENT and !$xml->isEmptyElement){ $assoc[$n]['name'] = $xml->name; if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value; $assoc[$n]['val'] = xml2assoc($xml); $n++; } else if($xml->isEmptyElement){ $assoc[$n]['name'] = $xml->name; if($xml->hasAttributes) while($xml->moveToNextAttribute()) $assoc[$n]['atr'][$xml->name] = $xml->value; $assoc[$n]['val'] = ""; $n++; } else if($xml->nodeType == XMLReader::TEXT) $assoc = $xml->value; } return $assoc; } $glob = glob("/var/www/sibirix2/data/www/сайт.ru/12dev/quantity/xml/*.xml"); $tr_tb1 = 'TRUNCATE TABLE quantina'; $clear = $DB->Query($tr_tb1); $h_counter = 0; $xml = new XMLReader(); $q_file = $glob[$file_count]; $xml->open($q_file); $assoc = xml2assoc($xml); $all_items = count($assoc[0]['val']); $all_files = count($glob); $end = $all_items; $sql = ''; $sql = 'INS ERT IN TO quantina (CODE,SHOP,QUANTITY) VALUES '; $code_go_sql = []; while ($h_counter < $end) { $code_xml = str_replace(' ', '', $assoc[0]['val'][$h_counter]['atr']['GUID']); $code = $code_xml; $code_go_sql[] = $code; $file_c = 0; while (count($assoc[0]['val'][$h_counter]['val'][0]['val']) > $file_c) { $qty = $assoc[0]['val'][$h_counter]['val'][0]['val'][$file_c]['atr']['Quantity']; $shop_guid = $assoc[0]['val'][$h_counter]['val'][0]['val'][$file_c]['atr']['GUID']; if ($shop_guid == '3934afd9-db2e-4e40-be95-232d6c1c8947') { $shop_id = 5; } elseif ($shop_guid == '84d58d66-88c5-11e8-80e4-c86000606f92') { $shop_id = 6; } $sql .= '("'.$code.'",'.$shop_id.','.$qty.'),'; $file_c++; } $h_counter++; } $ins_sql = substr($sql,0,-1); $tb_insert = $DB->Query($ins_sql); $arSelect = array( "ID","PROPERTY_CML2_TRAITS" ); //WHERE $arFilter = array( "ACTIVE" => "Y", "IBLOCK_ID" => 10, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "Y", "PROPERTY_CML2_TRAITS" => $code_go_sql ); //ORDER BY $arSort = array( "ID" => "DESC", ); $arResult["ITEMS"] = array(); if ($code_go_sql) { $rsElements = CIBlockElement::GetList($arSort, $arFilter, false, false, $arSelect); $full = array(); //$h = 0; $sql_u = ''; $sql_u_n = ''; $cur_code_ar = []; while ($obElement = $rsElements->GetNextElement()) { $arItem = $obElement->GetFields(); $cur_code_ar[] = $arItem['PROPERTY_CML2_TRAITS_VALUE']; $cur_code = $arItem['PROPERTY_CML2_TRAITS_VALUE']; $sql_u_n .= 'WHEN '.$cur_code.' THEN '.$arItem['ID'].' '; } if ($cur_code_ar) { $sql_u .= 'UPD ATE quantina SE T REAL_ID = CASE CODE '; $sql_u .= $sql_u_n; $sql_u .= 'ELSE REAL_ID END '; $tb_update = $DB->Query($sql_u); $sql_trash = 'DELETE FR OM quantina WH ERE REAL_ID = "0" OR SHOP = "0"'; $tb_trash = $DB->Query($sql_trash); } } ?> </main> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> |
Помогите разобраться. Ответов в сети не нашел.
p.s.: можно ли оптимизировать мой рнр и насколько он является корректным?