ок, весь код
| Код | function YaGet2($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER , "http://" .$_SERVER['HTTP_HOST'] ); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, array($url, 'GET')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $return = curl_exec($ch);
if(curl_errno($ch)){ $error = 'curl'.curl_errno($ch); return $error; } $http_code = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_code !== 200) { $error = 'http '.$http_code; return $error . "<br>".$return ; } else { return $return; } }
function objectsIntoArray($arrObjData, $arrSkipIndices = array()) { $arrData = array(); if (is_object($arrObjData)) { $arrObjData = get_object_vars($arrObjData); } if (is_array($arrObjData)) { foreach ($arrObjData as $index => $value) { if (is_object($value) || is_array($value)) { $value = objectsIntoArray($value, $arrSkipIndices); } if (in_array($index, $arrSkipIndices)) { continue; } $arrData[$index] = $value; } } return $arrData; }
$yakey = "CFs72AACAAABMosZdKcV9FLQoz9G0Hy6zbByF1NOKyErZg"; $url_uslugi = 'http://api.uslugi.yandex.ru/1.0/banks/deposits/search?' .http_build_query( array( 'key'=>$yakey, 'region'=>'Киев', 'currency'=>$currency, 'period'=>$period, 'sum'=>$sum, 'payment-of-interest'=>$payment_of_interest, 'capitalization'=>$capitalization, 'replenishment'=>$replenishment, 'limit'=>$limit ) ); $data = YaGet2($url_uslugi);
$xmlObj = simplexml_load_string($data); $xmlArr = objectsIntoArray($xmlObj);
|
| Цитата | У вас невалидный XML
|
От Яндекса?
Вот что в $data
| Код | <?xml version="1.0" encoding="UTF-8"?> <deposits> <deposit> <id>99898</id> <name>Хочу быть взрослым</name> <link href="http://api.uslugi.yandex.ru/1.0/banks/deposits/99898" rel="self"> <link href="http://www.ukrgasbank.com/rus/personal/deposits/kinds/adult/" rel="www"> <bank> <id>20942</id> <name>Укргазбанк</name> <company>РџРђРћ РђР‘ «Укргазбанк»</company> <rating> <stars><value></value></stars></rating> <link href="http://api.uslugi.yandex.ru/1.0/banks/20942" rel="self"> <link href="http://www.ukrgasbank.com/rus/" rel="www"> </bank> <restrictions>Депозит "Хочу быть взрослым" оформляется исключительно РЅР° РёРјСЏ Рё РІ интересах малолетних Рё несовершеннолетних лиц. Вкладчиком РїРѕ депозиту "Хочу быть взрослым" РјРѕРіСѓС‚ быть малолетние лица СЃ даты рождения РґРѕ 17-летнего возраста. Дата окончания действия РґРѕРіРѕРІРѕСЂР° РЅРµ может превышать дату достижения вкладчиком 18-ти летнего возраста +10 календарных дней.</restrictions> <payment-of-interest>QUARTERLY</payment-of-interest> <capitalization>YES</capitalization> <partial-withdrawal> <restrictions>Дважды РІ РіРѕРґ. РџСЂРё условии, что вкладчику РЅР° дату досрочного снятия части депозита исполнилось 16 лет.</restrictions> </partial-withdrawal> <replenishment> <restrictions>РќРµ позднее чем Р·Р° 365 дней РґРѕ окончания СЃСЂРѕРєР° действия РґРѕРіРѕРІРѕСЂР°. Минимальная СЃСѓРјРјР° пополнения - 100,00 гривен, 20,00 долларов РЎРЁРђ, 20,00 евро.</restrictions> </replenishment> <early-withdrawal>РџСЂРё досрочном расторжении РґРѕРіРѕРІРѕСЂР° РІ течение первых 32 календарных дней СЃ даты начала СЃСЂРѕРєР° размещения депозита проценты Р·Р° весь СЃСЂРѕРє размещения средств РЅР° депозитном счете переcчитываются РїРѕ сниженной ставке, РёР· расчета 0,001% годовых. РџСЂРё досрочном расторжении РґРѕРіРѕРІРѕСЂР° РІ период после 32 календарных дней СЃ даты начала СЃСЂРѕРєР° размещения депозита проценты Р·Р° весь СЃСЂРѕРє размещения средств РЅР° депозитном счете переcчитываются РїРѕ сниженной ставке, РёСЃС…РѕРґСЏ РёР· расчета 1% годовых.</early-withdrawal> <special-conditions>Дата окончания действия РґРѕРіРѕРІРѕСЂР° РЅРµ может превышать дату достижения вкладчиком 18-ти летнего возраста +10 календарных дней. Р’СЃРµ вкладчики, которые оформили депозит больше чем РЅР° 60 месяцев (5 лет), после достижения 18-ти летнего возраста имеют право получить кредит РїРѕ любой кредитной программе РђР‘ "Укргазбанк" для физических лиц РІ СЃСѓРјРјРµ, которая РЅРµ превышает 5 кратного размера депозита РЅР° момент достижения 18-ти летнего возраста. РџСЂРё этом, процентная ставка РїРѕ кредиту уменьшается РЅР° 1% годовых РѕС‚ базовых процентных ставок РїРѕ кредитам. Ставка увеличивается РЅР° 1 Рї.Рї. годовых РїСЂРё размещении депозита РЅР° СЃСѓРјРјСѓ РѕС‚ 500 000,00 гривен РЅР° СЃСЂРѕРє РѕС‚ 3 месяцев (РѕС‚ 93 дней). Ставка увеличивается РЅР° 0,2 Рї.Рї. годовых РїРѕ вкладам РІ национальной валюте, РґРѕР». РЎРЁРђ Рё евро для собственников карточных счетов, открытых РІ РђР‘ "Укргазбанк" для получения пенсий Рё помощи Р·Р° счёт средств Пенсионного фонда Украины.</special-conditions> <short> <rate> <value>12.0</value> </rate> <period interval="DAY">365</period> <income>3138.4</income> </short> </deposit> </deposits>
|
Добавлено через 9 минут и 45 секунд Мда, похоже я тупил...
Ошибки были, когда payment-of-interest, на который я грешил был пустой. Если там есть значение, то все нормально. У самого Яндекса написано, что пустыми значения могут быть... В общем, пока вопрос исчерпан, кто помогал |