Показать сообщение отдельно
  #39 (permalink)  
Старый 08.02.2018, 14:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от spinastr
Дело в том что я подключил php на стороне
Что значит на стороне? Если имеется ввиду, что на неком домене также своем, то клиент должен делать запрос к РНР скрипту на этом домене, который и будет отдавать курс. Если на этом домене есть и планировщик задач, то получение курса (запрос к ЦБ) нужно производить планировщиком раз в день. Полученный курс сохранять в базе, если БД нет, можно и в файл.

На запрос клиента к этому домену скрипт должен передавать заголовок "Access-Control-Allow-Origin: имя вашего домена", с которого клиент производит запрос.

Если при этом использовать SOAP сервер, то получение может быть таким:

if(PHP_SAPI == 'cli') {
    //установить директорию, все необходимые подключения производить относительно этой директории 
    chdir(dirname(__FILE__));

    try {
        //получение кураса доллара на текущую дату
        $client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?wsdl"); 
        $curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d')]);
        $rate = new SimpleXMLElement($curs->GetCursOnDateResult->any);
        $result = $rate->xpath('ValuteData/ValuteCursOnDate[VchCode="USD"]');
        $usd = (float)$result[0]->Vcurs/(int)$result[0]->Vnom;
        
        if($usd) {
            //здесь сохранение курса в базе
        }
    } catch (Exception $e) {
        
    }
}


Здесь описание методов севера. Если использовать запрос xml, то ответ сервера разобрать посредством SimpleXML и сохранить.
Ответить с цитированием