donatj/printf-parser

PHP printf-syntax compatible printf string parser. Parses printf strings into a stream of lexemes.

Maintainers

👁 donatj

Package info

github.com/donatj/printf-parser

pkg:composer/donatj/printf-parser

Statistics

Installs: 66 683

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 1

v0.7.0 2026-04-22 15:43 UTC

Requires

  • php: >=7.4

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT cdbc40a9e46fc87a18ff6e965e285aa712c5b361

  • Jesse Donat <donatj.woop@gmail.com>

README

👁 Latest Stable Version
👁 Total Downloads
👁 License
👁 ci.yml
👁 Scrutinizer Code Quality
👁 Code Coverage

PHP printf-syntax compatible printf string parser.

Parses printf strings into a stream of lexemes.

Requirements

  • php: >=7.4

Installing

Install the latest version with:

composer require 'donatj/printf-parser'

Example

Here is a simple example:

<?php

require __DIR__ . '/../vendor/autoload.php';

$emitter = new \donatj\Printf\LexemeEmitter;
$parser = new \donatj\Printf\Parser($emitter);

$parser->parseStr('percent of %s: %d%%');

$lexemes = $emitter->getLexemes();

foreach( $lexemes as $lexeme ) {
	echo $lexeme->getLexItemType() . ' -> ';
	echo var_export($lexeme->getVal(), true);

	if( $lexeme instanceof \donatj\Printf\ArgumentLexeme ) {
		echo ' arg type: ' . $lexeme->argType();
	}

	echo PHP_EOL;
}

Output:

! -> 'percent of '
s -> 's' arg type: string
! -> ': '
d -> 'd' arg type: int
! -> '%'

Documentation

Full API Documentation