Перейти к содержимому


Получение данных банка по БИК


Сообщений в теме: 9

#1 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 11 Апрель 2015 - 13:16

Пытаюсь реализовать возможность автозаполнения параметров банка по БИКу черех xml запрос:

include 'example.php';
$xmlstr="http://htmlweb.ru/service/api.php?bic=".$line['БИК банка']."&xml";
$dom = new domDocument('1.0','utf-8');
$s = simplexml_import_dom($dom);
$line['Название банка полное']=$s->bank->name;
$line['Город банка']=$s->bank->city;
$line['Адрес банка']=$s->bank->adress;
$line['Корсчет банка']=$s->bank->ks;
$line['Телефоны банка']=$s->bank->tel;
$line['Дата актуализации']=$s->bank->upd;

Не заполняет!
Что я делаю не так?

#2 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 19 Апрель 2015 - 21:59

Второй вариант тоже не работает

$xmlstr="http://htmlweb.ru/service/api.php?bic=".$line['БИК банка']."&xml";
$dom = domxml_open_file('http://htmlweb.ru/service/api.php?bic=044525201&xml');
$xpath = xpath_new_context($dom);
$nodes = xpath_eval($xpath, '/bank/*');
foreach ($nodes->nodeset as $node) {
$line['Название банка полное']=$node->bank;
$line['Город банка']=$node->city;
$line['Адрес банка']=$node->adress;
$line['Корсчет банка']=$node->ks;
$line['Телефоны банка']=$node->tel;
$line['Дата актуализации']=$node->upd;
$line['ver']=5;
}

Такое ощущение, что php в дополнительном действии не просто php, а как-то интерпретируемый вами код, где DOM - функции просто не воспринимаются.
Ответ будет?

#3 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Апрель 2015 - 10:07

Что значит "интерпретируемый нами"? Мы что, по вашему, написали свой интерпретатор PHP? :) Вот нам делать оказывается нечего...

Это обычный код, запускаемый через функцию eval. Не думаю, что она может как-то повлиять на работу ваших функций.

#4 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 24 Апрель 2015 - 12:43

Ну а по вопросу вы ответите? Что я не так делаю?

#5 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 24 Апрель 2015 - 16:05

Просмотр сообщенияАлександр Пономарев (24 Апрель 2015 - 12:43) писал:

Что я не так делаю?

$xmlstr = "http://htmlweb.ru/service/api.php?bic=".$line['БИК банка']."&xml";
$dom = new domDocument('1.0','utf-8');
$s = simplexml_import_dom($dom);
$line['Название банка полное'] = $s->bank->name;

Никогда не работал с данными функциями, но как-то странно выглядит: создаете пустой domDocument и затем пытаетесь извлечь из него банк. По-моему, немудрено, что там будет пустота. Никакой связи с $xmlstr я не вижу.

Во втором варианте не знаю в чем дело, вроде тут есть подгрузка с какого-то URL. Но смущает присвоение в цикле, которое должно несколько раз затирать значения. По-моему просто намудрили с кодом.

Вообще, с точки зрения документации КБ, ничего из "не так" тут нет, данный код выходит за рамки стандартных операций. По идее отладкой подобного кода вы самостоятельно должны заниматься.

#6 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 27 Апрель 2015 - 23:16

Просмотр сообщенияCbCoder (24 Апрель 2015 - 16:05) писал:

$xmlstr = "http://htmlweb.ru/service/api.php?bic=".$line['БИК банка']."&xml";
$dom = new domDocument('1.0','utf-8');
$s = simplexml_import_dom($dom);
$line['Название банка полное'] = $s->bank->name;

Никогда не работал с данными функциями, но как-то странно выглядит: создаете пустой domDocument и затем пытаетесь извлечь из него банк. По-моему, немудрено, что там будет пустота. Никакой связи с $xmlstr я не вижу.

Во втором варианте не знаю в чем дело, вроде тут есть подгрузка с какого-то URL. Но смущает присвоение в цикле, которое должно несколько раз затирать значения. По-моему просто намудрили с кодом.

Вообще, с точки зрения документации КБ, ничего из "не так" тут нет, данный код выходит за рамки стандартных операций. По идее отладкой подобного кода вы самостоятельно должны заниматься.

Насчет цикла - там одна запись априори, так что ничего перетираться не должно (аналог LIMIT=1). Но что-то не так. Не могли бы вы все-таки помочь, поскольку xml - формат, набирающий популярность и его все равно рано или поздно придется применять и описывать в КБ. Было бы неплохо какие-то собственные полезные функции описать, аналогичные с SQL.

#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Апрель 2015 - 09:37

Цитата

Не могли бы вы все-таки помочь, поскольку xml - формат, набирающий популярность и его все равно рано или поздно придется применять и описывать в КБ. Было бы неплохо какие-то собственные полезные функции описать, аналогичные с SQL

Я бы может и помог, но как уже сказал выше, никогда не работал с данными функциями, поэтому не могу поделиться какой-то новой информацией. В остальном же каких-то явных нестыковок я не вижу. Что касается "собственных функций", то мы их добавляем только в случае массового использования.

#8 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 06 Май 2015 - 20:28

Послушайте! xml файлы сейчас выдает все больше сервисов. Без них невозможно обновлять базу со сторонних источников. Поиск по БИК, курсы валют и т.п. Я бы на вашем месте подумал над тем, как облегчить жизнь пользователям. Чего вы упрямитесь?

#9 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Май 2015 - 09:24

И как вы считаете, много ли из наших клиентов используют эти xml файлы? В процентном отношении от всех, кто хотя бы пишет вычисления? Очень сильно сомневаюсь, что много. Такими вещами обычно пользуются более продвинутые, которые в состоянии сами изучить вопрос и отладить свой код. Другое дело, что для массовых пользователей было бы куда интереснее использовать готовые модули подгрузки подобных справочников, без вникания в технические детали с xml и прочими программистскими штуками. Об этом вы тоже вроде писали, и тут я как раз полностью согласен.

#10 Александр Пономарев

    Активный участник

  • Пользователи
  • PipPipPip
  • 435 сообщений
  • Пол:Мужчина
  • Город:Таганрог

Отправлено 08 Май 2015 - 01:16

Вы мне напоминаете известный совковый анекдот про отсутствие спроса:
- Почему у вас нет в магазине черной икры?
- Спросом не пользуется!
- Как не пользуется?
- Ну постойте пару часов, увидите, что никто не спрашивает.

Намек понятен? Будет инструмент - появятся и пользователи. Ждать, пока вы все сделаете удобно, времени нет. Дописываем сами, читая этот форум. Ну так и помогайте нам в освоении. Одному помогли - все пользуются.
Я уже не говорю о том, что не мешало бы учебник уже написать какой-никакой, с учетом особенностей программирования во внешних php файлах и встроенных (вычислениях и кнопках), а также в фильтрах и JS. А то синтаксис разный и постоянная путанница. Я даже таблицу завел, которую назвал "Типовые коды", куда ссыпаю все найденное в этом форуме для легкого поиска и применения. Чего бы вам такое не сделать для всех? Описание с примерами. Думаю, у вас после этого количество платных пользователей только прибавится.





Количество пользователей, читающих эту тему: 6

0 пользователей, 6 гостей, 0 анонимных