chesszebra / portable-game-notation
一个用于解析和写入棋局的可移植游戏记法(PGN)格式的PHP库。
1.1.1
2022-02-22 21:20 UTC
Requires
- php: ^7.1
- chesszebra/standard-algebraic-notation: ^1.4
Requires (Dev)
- phpunit/phpunit: ^6.4
- squizlabs/php_codesniffer: ^3.1
README
一个用于解析和写入棋局的可移植游戏记法(PGN)格式的PHP库。
安装
通过composer
composer require chesszebra/portable-game-notation
使用方法
读取
从字符串中读取
从字符串中读取单个PGN棋局
use ChessZebra\PortableGameNotation\Reader\StringReader; $reader = new StringReader('1. e4 e5'); $tokenIterator = $reader->read();
从流中读取
从流中读取单个PGN棋局
use ChessZebra\PortableGameNotation\Reader\StringReader; $reader = new StreamReader(fopen('games.pgn', 'r')); $tokenIterator = $reader->read();
写入
到字符串
将PGN棋局写入字符串
use ChessZebra\PortableGameNotation\TokenIterator; use ChessZebra\PortableGameNotation\Token\StandardAlgebraicNotation; use ChessZebra\PortableGameNotation\Writer\StringWriter; use ChessZebra\StandardAlgebraicNotation\Notation; $tokenIterator = new TokenIterator([ new MoveNumber(1), new StandardAlgebraicNotation(new Notation('e4')), ]); $writer = new StringWriter(); $writer->write($tokenIterator); $pgn = $writer->getPgn();
到流
将PGN棋局写入流
use ChessZebra\PortableGameNotation\TokenIterator; use ChessZebra\PortableGameNotation\Token\StandardAlgebraicNotation; use ChessZebra\PortableGameNotation\Writer\Stream; use ChessZebra\StandardAlgebraicNotation\Notation; $tokenIterator = new TokenIterator([ new MoveNumber(1), new StandardAlgebraicNotation(new Notation('e4')), ]); $writer = new Stream(fopen('game.pgn', 'w')); $writer->write($tokenIterator);
游戏分词
从字符串中读取
use ChessZebra\PortableGameNotation\Lexer\StringLexer; $lexer = new StringLexer('1. e4'); $token = $lexer->getNextToken();
从资源中
use ChessZebra\PortableGameNotation\Lexer\StreamLexer; $lexer = new StreamLexer(fopen('my-games.pgn', 'r')); $token = $lexer->getNextToken();
贡献
请参阅CONTRIBUTING 和 CONDUCT 获取详细信息。
安全
如果您发现任何安全相关的问题,请通过 HackerOne 报告。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。