lubosdz/parser-orsr
Composer 安装命令:
composer require lubosdz/parser-orsr
包简介
Parser Obchodneho registra SR - https://www.orsr.sk/ (Parser for Business Directory of Slovak Republic)
README 文档
README
Disclaimer / Prehlásenie:
Kód poskytnutý je bez záruky a môže kedykoľvek prestať fungovať. Jeho funkčnosť je striktne naviazaná na generovanú štruktúru HTML elementov. Autor nie je povinný udržiavať kód aktuálny a funkčný, ani neposkytuje ku nemu žiadnu podporu. Kód bol sprístupnený na základe mnohých žiadostí vývojárov finančno-ekonomických aplikácií a (bohužiaľ) neschopnosti úradných inštitúcií sprístupniť oficiálny prístup do verejnej databázy subjektov pomocou štandardného API rozhrania. Autor nezodpovedá za nesprávne použitie kódu.
Licencia
Kód obsiahnutý v súbore ConnectorOrsr.php je voľne distribuovateľný a modifikovateľný na súkromné ako aj komerčné účely.
Poznámka / Note
Obchodný register SR obsahuje len časť subjektov v podnikateľskom prostredí (cca 480 tis.). Neobsahuje údaje napr. o živnostníkoch alebo neziskových organizáciách. Tieto sa nachádzajú v ďalších verejne prístupných databázach (živnostenský register, register účtovných závierok, register právnických osôb). Pokiaľ hľadáte profesionálne riešenie s prístupom ku všetkých 1.7 mil. subjektom pozrite https://bizdata.sk.
Parser for Business Directory of Slovak Republic allows accessing cca 480k companies. However, it does not provide access to ie. enterpreneurs or unprofitable organizations, since these are not contained within the Business Directory. If you are looking for a professional solution with access to all 1.7 mil. of entities, take a look at https://bizdata.sk.
Tipy na správne použitie
- nepreťažujte server obchodného registra ORSR - nie je známe, akú záťaž dokáže server zvládnuť. Preťažením servera znemožníte využitie služby sebe aj iným. Buďte etickí programátori.
- neoporúčame posielať požiadavky na server častejšie ako 1x za minútu. V žiadnom prípade nerobte hromadné odoslanie požiadaviek napr. 10 požiadaviek za sekundu - nerobia to ani webboty, lebo vedia, že môžu odpáliť server a dostať IP ban.
- cachujte odpovede (do databázy) zo servera ORSR tak, aby sa rovnaký request neopakoval aspoň 3 - 6 mesiacov. Údaje v Obchodnom registri sa menia veľmi zriedkavo. Cachovanie nie je súčasťou implementácie (ukladanie odpovedí do lokálneho súboru v debug móde nepovažujeme za cachovanie).
Inštalácia, dependencie, demo
- Kód je obsiahnutý v jedinom PHP súbore
ConnectorOrsr.php. - Potrebné PHP rozšírenia:
tidy,mbstring,dom,iconv,json. - Demo: https://synet.sk/blog/php/360-ORSR-API-rozhranie-obchodny-register
- install manually or via composer:
$ composer require "lubosdz/parser-orsr" : "~1.1.0"
Použitie / API / Usage
// inicializacia API objektu
$orsr = new \lubosdz\parserOrsr\ConnectorOrsr();
Vyhľadávanie:
// 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');
Podporné metódy:
// zapneme priamy výstup údajov do prehliadača + local file caching into temp directory
$orsr->debug = true;
$orsr->dirCache = '/writable/temp/'; // debugging will attempt to save fetched page
// 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;
Príklad odpovede:
// sample #1
$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',
)
// sample #2
$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] => 31.12.2023
)
Príklad implementácie (MVC framework, e.g. 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); }
View:
<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", // implement your own OrsrController data: {ico: ico}, success: function (response) { if(response.ico != undefined && response.ico){ console.log(response); }else{ alert("No records found."); } } }) } } }); </script>
Changelog
1.1.5 - 06.05.2026
- UPD - parse either section "Predmet činnosti" or "Predmet podnikania" (latter one introduced recently)
- UPD - improved detection of company in bankruptcy (v likvidácii)
1.1.4 - 18.08.2025
- ENH - properly detect valid item - may not contain "Deň výmazu:" (@romanmatyus)
- use
preg_match()rather thanstripos()for searching single-byte HTML source string
1.1.3 - 27.05.2025
- ENH - properly detect valid item - not containing "Výpis je neaktuálny z dôvodu zmeny právnej formy"
- ENH - added test + CI workflow for PHP 7.1 - 8.4 (@romanmatyus)
1.1.2 - 21.10.2024
- ENH - store fetched source link (permalink) as attribute "srcUrl" along with extracted data
- ENH - documentation improvements - see demo
1.1.1 - 16.10.2024
- ENH - extract Kontrolná komisia
- ENH - multiple minor parsing improvements - hodnota akcií, štatutári, neštandardné poznámky osobách apod.
1.1.0 - 13.11.2023
- Fix - vrátime platný spis pre viac platných záznamov / subjektov s rovnakým IČO (getDetailByICO - #10)
- Enh - support requests delay options (msecDelayFetchUrl, delayAfterRequestCount) to prevent from rate limit ban
1.0.9 - 02.06.2023
- Support "Mestský súd" along with traditional "Okresný súd"
- Fix multiline company name with EOLs
- tests passing 8.2.3
1.0.8 - 15.02.2022
- Fix compatability with PHP 8.1+
1.0.7 - 06.01.2022
- Added unit tests passing PHP 5.6 - 8.1
- Updated endpoint URL to HTTP -> HTTPS
- Separate method for loading remote URL with configurable timeout (default 5 secs)
- Many parsing improvements
- Fix invalid UTF-8 chars for some foreign companies, strip off accents from HU, PL, CZ company names
- Parsing item dates - e.g. item since or eventDate
- Normalized currency conversion to EUR (e.g. vyska vkladu) if denominated in SKK
- minor BC break: attribute
likvidacianow returns 1|0 instead of ano|nie - Added new parsed sections:
- Spoločnosť zrušená od
- Právny dôvod zrušenia
- Vyhlásenie konkurzu
- Správca konkurznej podstaty
- členský vklad
- Zlúčenie, splynutie
- Právny nástupca
1.0.6 - 25.08.2020
- Make tidy extension optional (NOT recommended, but for some hostings the only way to go)
- Minor improvements e.g. multiple whitespaces replaced with a single whitespace
1.0.5 - 09.11.2019
- Revert support for option uplny/ciastocny vypis
- Extract Miesto podnikania, Veduci org. zlozky
- Fixed parsing countries for foreigners
- Updated documentation
1.0.4 - 08.11.2019
- Added option uplny/ciastocny vypis
- Extract additional attributes (den vymazu, dovod vymazu, zastupovanie)
- fix multiple company names & address without street (only city)
1.0.3 - 02.09.2019
- Added method findByICO, code cleanup & formatting
1.0.2 - 14.05.2019
- fixed PCRE unicode handling in different environments
1.0.1 - 11.03.2019
- fixed bug PHP7+ compatability
1.0.0 - 12.09.2018
- initial release
lubosdz/parser-orsr 适用场景与选型建议
lubosdz/parser-orsr 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 76.49k 次下载、GitHub Stars 达 60, 最近一次更新时间为 2018 年 09 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「orsr.sk API parser」 「Obchodny register SR」 「slovak business directory」 「orsr.sk」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lubosdz/parser-orsr 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lubosdz/parser-orsr 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lubosdz/parser-orsr 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Easy to use SDK with grabber for multiple platforms at once like YouTube, Dailymotion, Facebook and more.
An MT940 bank statement parser for PHP
A PSR-7 compatible library for making CRUD API endpoints
Laravel integration for the jsonapi.org parser
A modern HTML DOM parser for PHP using DOMDocument and Symfony CssSelector.
JPOPHP (JSON Parser Object PHP) is a library for parsing the data in JSON format.
统计信息
- 总下载量: 76.49k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 60
- 点击次数: 34
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2018-09-12