в общем есть скрипт который берет курсы валют и пишет их инфоблок каждый день в 5 утра скрипт ниже
вопрос 1ый
если раскомментить
//define("LANG", "ru");
//$_SERVER["DOCUMENT_ROOT"] = "/home/r/ТУТЛОГИН";
выдается ошибка Class 'CModule' not found in
важно ли это?
вопрос 2ой
как закрыть скрипт от прямого вызова? если вызвать скрипт через строку браузера он автоматически добавить элемент инфоблока?
вопрос 3ий
и самый важный почему не выполняется через крон???? предполагаю решение в первом вопросе.
-----------------
хостинг sweb
"1С-Битрикс: Управление сайтом 15.5.1"
редакция -Старт
задание для крона каждый день в 5 утра
скрипт
вопрос 1ый
если раскомментить
//define("LANG", "ru");
//$_SERVER["DOCUMENT_ROOT"] = "/home/r/ТУТЛОГИН";
выдается ошибка Class 'CModule' not found in
важно ли это?
вопрос 2ой
как закрыть скрипт от прямого вызова? если вызвать скрипт через строку браузера он автоматически добавить элемент инфоблока?
вопрос 3ий
и самый важный почему не выполняется через крон???? предполагаю решение в первом вопросе.
-----------------
хостинг sweb
"1С-Битрикс: Управление сайтом 15.5.1"
редакция -Старт
задание для крона каждый день в 5 утра
Код |
---|
/usr/bin/php5.3 /home/r/ТУТЛОГИН/ПАПКАСАЙТА/public_html/include_area/curs.php |
скрипт
Код |
---|
#!/usr/bin/php <?php //$_SERVER["DOCUMENT_ROOT"] = "/home/r/ТУТЛОГИН"; $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS", true); set_time_limit(60); //define("LANG", "ru"); include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); // Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru $content = get_content(); // Разбираем содержимое, при помощи регулярных выражений $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i"; preg_match_all($pattern, $content, $out, PREG_SET_ORDER); $dollar = ""; $euro = ""; foreach($out as $cur) { if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]); if($cur[2] == 978) $euro = str_replace(",",".",$cur[4]); } //echo "$ - ".$dollar."<br>"; // echo "EUR - ".$euro."<br>"; global $APPLICATION; CModule::IncludeModule('iblock'); // if(CModule::IncludeModule('iblock')){ $el = new CIBlockElement; $arLoadProductArray = array( 'IBLOCK_ID' => 33, 'ACTIVE_FROM' => date('d.m.Y H:i:s'), 'NAME' => "Курс на ".date('d.m.Y'), 'PROPERTY_VALUES' => array( 'USD' => $dollar, 'EUR' => $euro, ) ); $PRODUCT_ID = $el->Add($arLoadProductArray); // } function get_content() { // Формируем сегодняшнюю дату $date = date("d/m/Y"); // Формируем ссылку $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date"; // Загружаем HTML-страницу $fd = fopen($link, "r"); $text=""; if (!$fd) echo "Запрашиваемая страница не найдена"; else { // Чтение содержимого файла в переменную $text while (!feof ($fd)) $text .= fgets($fd, 4096); } // Закрыть открытый файловый дескриптор fclose ($fd); return $text; } include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?> |