lubosdz/parser-orsr

Parser Obchodneho registra SR - www.orsr.sk. (斯洛伐克商业登记处的解析器)

1.1.0 2023-11-13 15:54 UTC

This package is auto-updated.

Last update: 2024-09-24 20:47:46 UTC


README

免责声明/声明:

提供的代码无任何保证,并且可能随时停止工作。其功能严格依赖于生成的HTML元素结构。作者没有义务保持代码的当前性和功能性,也不提供任何支持。代码是在许多财务经济应用程序开发者的要求下发布的,以及(遗憾的是)官方机构无法通过标准API接口提供对公共数据库主体的官方访问。作者不对代码的不正确使用负责。

许可证

文件ConnectorOrsr.php中的代码可以自由分发和修改,用于私人或商业目的。

正确使用提示

  • 不要过度负载ORSR商业登记服务器 - 服务器能够处理多少负载尚不清楚。过度加载服务器将阻止您和其他人使用该服务。做一个有道德的程序员。
  • 我们不推荐每分钟发送超过1次请求到服务器。在任何情况下,请不要以每秒10次等大量发送请求 - 这连webbot都不会做,因为它们知道这可能导致服务器崩溃和IP封禁。
  • 缓存从ORSR服务器获取的响应(到数据库),以确保相同的请求至少3-6个月内不重复。商业登记处的数据很少改变。缓存不是实现的一部分(在调试模式下将响应保存到本地文件不被视为缓存)。

安装、依赖项、演示

$ 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

  • 初始发布