lubosdz / parser-orsr
Parser Obchodneho registra SR - www.orsr.sk. (斯洛伐克商业登记处的解析器)
1.1.0
2023-11-13 15:54 UTC
Requires
- php: >=5.5
README
免责声明/声明:
提供的代码无任何保证,并且可能随时停止工作。其功能严格依赖于生成的HTML元素结构。作者没有义务保持代码的当前性和功能性,也不提供任何支持。代码是在许多财务经济应用程序开发者的要求下发布的,以及(遗憾的是)官方机构无法通过标准API接口提供对公共数据库主体的官方访问。作者不对代码的不正确使用负责。
许可证
文件ConnectorOrsr.php
中的代码可以自由分发和修改,用于私人或商业目的。
正确使用提示
- 不要过度负载ORSR商业登记服务器 - 服务器能够处理多少负载尚不清楚。过度加载服务器将阻止您和其他人使用该服务。做一个有道德的程序员。
- 我们不推荐每分钟发送超过1次请求到服务器。在任何情况下,请不要以每秒10次等大量发送请求 - 这连webbot都不会做,因为它们知道这可能导致服务器崩溃和IP封禁。
- 缓存从ORSR服务器获取的响应(到数据库),以确保相同的请求至少3-6个月内不重复。商业登记处的数据很少改变。缓存不是实现的一部分(在调试模式下将响应保存到本地文件不被视为缓存)。
安装、依赖项、演示
- 代码包含在一个PHP文件
ConnectorOrsr.php
中。 - 需要的PHP扩展:
tidy
、mbstring
、dom
、iconv
、json
。 - 演示:https://synet.sk/blog/php/360-ORSR-API-rozhranie-obchodny-register
- 手动安装或通过composer
$ composer require "lubosdz/parser-orsr" : "~1.0.9"
使用 / API / 使用
// inicializacia API objektu
$orsr = new \lubosdz\parserOrsr\ConnectorOrsr();
搜索
// vyhľadanie zoznamu subjektov podľa mena/názvu:
$list = $orsr->findByPriezviskoMeno('Novák', 'Peter');
$list = $orsr->findByObchodneMeno('Matador'); // e.g. vypis.asp?ID=1319&SID=9&P=0
$list = $orsr->findByICO('31577890'); // always max. 1 item - array(subject_name => link)
// vyhľadanie detailu subjektu podľa ID/IČO:
$detail = $orsr->getDetailById(1319, 9); // from link "vypis.asp?ID=1319&SID=9"
$detail = $orsr->getDetailByICO('31577890');
支持的方法
// zapneme priamy výstup údajov do prehliadača + local file caching
$orsr->debug = true;
// nastavenie formátu výstupu
$orsr->setOutputFormat('xml'); // xml|json|empty string
// (!) NOT RECOMMENDED - bez tidy extension + vypnute zobrazenim XML chyb
$orsr->useTidy = false;
$orsr->showXmlErrors = false;
示例响应
$list = $orsr->findByObchodneMeno('Matador');
$list : array (
'MATADOR Automotive Vráble, a.s.' => 'vypis.asp?ID=1319&SID=9&P=0',
'MATADOR Automation, s. r. o.' => 'vypis.asp?ID=361195&SID=6&P=0',
'MATADOR HOLDING, a.s.' => 'vypis.asp?ID=6014&SID=6&P=0',
'MATADOR Industries, a. s.' => 'vypis.asp?ID=5962&SID=6&P=0',
'MATADOR Tools, s. r. o.' => 'vypis.asp?ID=361231&SID=6&P=0',
'MATADORFIX s.r.o.' => 'vypis.asp?ID=8202&SID=2&P=0',
'MATADOR-TOYS, s. r. o.' => 'vypis.asp?ID=313211&SID=6&P=0',
)
$detail = $orsr->getDetailById(1319, 9); // z linky 'vypis.asp?ID=1319&SID=9&P=0'
$detail : Array
(
[meta] => Array
(
[api_version] => 1.0.5
[sign] => 6A36A4547DBAD50692BEB0C428AB4FC8
[server] => localhost
[time] => 09.11.2019 09:22:58
[sec] => 2.421
[mb] => 0.680
)
[prislusny_sud] => Bratislava I
[oddiel] => Po
[vlozka] => 1648/B
[typ_osoby] => pravnicka
[hlavicka] => Spoločnosť zapísaná v obchodnom registri Okresného súdu Bratislava I, oddiel Po, vložka 1648/B.
[hlavicka_kratka] => OS Bratislava I, oddiel Po, vložka 1648/B
[obchodne_meno] => Novak company s. r. o., organizačná zložka
[likvidacia] => nie
[adresa] => Array
(
[street] => Heydukova
[number] => 9
[city] => Bratislava
[zip] => 81108
)
[ico] => 44443536
[den_zapisu] => 16.10.2008
[pravna_forma] => Podnik zahraničnej osoby (organizačná zložka podniku zahraničnej osoby)
[predmet_cinnosti] => Array
(
[0] => kúpa tovaru na účely jeho predaja konečnému spotrebiteľovi /maloobchod/ alebo iným prevádzkovateľom živnosti /veľkoobchod/
[1] => sprostredkovateľská činnosť v oblasti obchodu
[2] => sprostredkovateľská činnosť v oblasti služieb
)
[veduci_organizacnej_zlozky] => Array
(
[name] => Jan Novák
[street] => Semická
[city] => Modřany Praha
[country] => Česká republika
[since] => 16.10.2008
[number] => 3292/6
[zip] => 414300
)
[konanie_menom_spolocnosti] => Vedúci organizačnej zložky je oprávnený robiť právne úkony v záležitostiach týkajúcich sa organizačnej zložky. Vedúci organizačnej zložky koná a podpisuje tak, že k napísanému alebo vytlačenému označeniu organizačnej zložky pripojí svoj podpis s uvedením svojej funkcie. Zakladateľ môže stanoviť interné pokyny, ktorými obmedzí konanie vedúceho organizačnej zložky.
[dalsie_skutocnosti] => Spoločnosť bola založená zakladateľskou listinou o založení organizačnej zložky vo forme notárskej zápisnice N 229/2008, Nz 41147/2008 zo dňa 1.10.2008 v zmysle príslušných ustanovení z. č. 513/1991 Zb. Obchodný zákonník.
[datum_aktualizacie] => 07.11.2019
[datum_vypisu] => 09.11.2019
)
示例实现(MVC框架,例如Yii)
OrsrController
<?php use lubosdz\parserOrsr\ConnectorOrsr; public function actionFindDetailByIco() { $ico = empty($_GET['ico']) ? '' : htmlspecialchars(trim($_GET['ico'])); $out = []; $connector = new ConnectorOrsr(); $results = $connector->getDetailByICO($ico); return $this->asJson($out); } public function actionFindListByCompanyName() { $term = empty($_GET['term']) ? '' : htmlspecialchars(trim($_GET['term'])); $out = []; $connector = new ConnectorOrsr(); $results = $connector->findByObchodneMeno($term); if($results && is_array($results)){ foreach($results as $name => $link){ $out[] = [ 'label' => $name, 'value' => $link, ]; } } return $this->asJson($out); } public function actionCompanyDetail() { $link = empty($_GET['h']) ? '' : htmlspecialchars($_GET['h']); $out = []; if($link){ $connector = new ConnectorOrsr(); $out = $connector->getDetailByPartialLink($link); } return $this->asJson($out); }
视图
<input type="text" id="company_ico" maxlength="8" /> <script type="text/javascript"> $("#company_ico").on("keyup", function(){ var me = $(this), ico = $.trim(me.val()), if(8 === ico.length){ if(!/^([\d])+$/.test(ico)){ alert("Zadajte len číslice 0-9."); }else{ $.ajax({ url: "/orsr/find-detail-by-ico", data: {ico: ico}, success: function (response) { if(response.ico != undefined && response.ico){ console.log(response); }else{ alert("No records found."); } } }) } } }); </script>
变更日志
1.1.0 - 13.11.2023
- 修复 - 返回多个具有相同IČO的有效记录/实体的有效文件 / getDetailByICO - #10
- 增强 - 支持延迟请求选项(msecDelayFetchUrl,delayAfterRequestCount)以防止因速率限制而封禁
1.0.9 - 02.06.2023
- 支持“市法院”以及传统的“地区法院”
- 修复多行公司名称中的EOL
- 测试通过8.2.3
1.0.8 - 15.02.2022
- 修复与PHP 8.1+的兼容性
1.0.7 - 06.01.2022
- 添加单元测试,通过PHP 5.6 - 8.1
- 更新端点URL为HTTP -> HTTPS
- 独立方法用于加载远程URL,可配置超时(默认5秒)
- 许多解析改进
- 修复某些外国公司的无效UTF-8字符,从HU、PL、CZ公司名称中删除重音符号
- 解析项日期 - 例如item since或eventDate
- 将货币转换为EUR(例如vyska vkladu)如果以SKK计价
- 小版本BC中断:属性
likvidacia
现在返回1|0而不是ano|nie - 添加新的解析部分
- 公司自
- 解除法律依据
- 宣布破产
- 破产财产管理员
- 成员存款
- 合并,合并
- 法律继承人
1.0.6 - 25.08.2020
- 使tidy扩展可选(不推荐,但对于某些托管服务来说可能是唯一的选择)
- 微小改进,例如将多个空格替换为单个空格
1.0.5 - 09.11.2019
- 撤销对选项uplny/ciastocny vypis的支持
- 提取Miesto podnikania,Veduci org. zlozky
- 修复解析外国人的国家
- 更新文档
1.0.4 - 08.11.2019
- 添加选项uplny/ciastocny vypis
- 提取额外属性(删除原因,删除依据,代表)
- 修复多个公司名称和地址(无街道,只有城市)
1.0.3 - 02.09.2019
- 添加了findByICO方法,代码清理和格式化
1.0.2 - 14.05.2019
- 修复了在不同环境中PCRE对Unicode的处理
1.0.1 - 11.03.2019
- 修复了PHP7+兼容性问题
1.0.0 - 12.09.2018
- 初始发布