donatj/printf-parser

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

Maintainers

Package info

github.com/donatj/printf-parser

pkg:composer/donatj/printf-parser

Statistics

Installs: 62 839

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 1

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

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