phaza / norwegian-ssr-parser
解析挪威地点名称注册(Norsk stedsnavnregister)geojson数据输出为流
0.6
2015-03-09 12:46 UTC
Requires
- php: >=5.4
- salsify/json-streaming-parser: ~4.0
Requires (Dev)
- php: >=5.5
- phpunit/phpunit: ~4.5
This package is auto-updated.
Last update: 2024-09-13 20:30:00 UTC
README
是什么
此包包含将“挪威地点名称注册”(Norsk stedsnavnregister)geojson数据输出解析为流的函数。与其他解析器相比,其主要优势在于它基于流,因此不会一次性将整个文件(通常约为500MB)加载到内存中。为此所付出的代价是速度。它依赖于用PHP编写的json流解析器,这自然比本地的json_decode
慢。
如何使用
安装包
composer require "phaza/norwegian-ssr-parser"
使用解析器
#!PHP
<?php
use Phaza\SSR\Feature;
use Phaza\SSR\Listener;
$handle = fopen('Stedsnavn.geojson', 'r');
$listener = new Listener(function(Feature $item) {
/* Do your magic in the closure */
});
$parser = new JsonStreamingParser_Parser($handle, $listener);
$parser->parse();
fclose($handle);
提示
请记住,使用PHP的流过滤器,您可以即时解压缩。
示例
#!PHP
<?php
$handle = fopen('Stedsnavn.bz2', 'r');
stream_filter_append($handle, 'bzip2.decompress', STREAM_FILTER_READ);
$parser = new JsonStreamingParser_Parser($handle, $listener);
fclose($handle);
// pr
$handle = fopen('compress.bzip2://Stedsnavn.bz2', 'r');
$parser = new JsonStreamingParser_Parser($handle, $listener);
fclose($handle);