https://github.com/mistralys/php-sprintf-parser
Parser to find all `sprintf` format placeholders in a string, and get information on them.
https://github.com/mistralys/php-sprintf-parser
Last synced: 12 months ago
JSON representation
Parser to find all `sprintf` format placeholders in a string, and get information on them.
- Host: GitHub
- URL: https://github.com/mistralys/php-sprintf-parser
- Owner: Mistralys
- License: mit
- Created: 2021-10-31T10:07:00.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-11-06T10:05:06.000Z (almost 5 years ago)
- Last Synced: 2025-07-30T12:25:35.670Z (about 1 year ago)
- Language: PHP
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.txt
- License: LICENSE
Awesome Lists containing this project
README
# Sprintf format placeholders parser
PHP-based parser class that can be used to find all format
placeholders of the [sprintf][] function in a string, and
get information on them.
## Requirements
- PHP >= 7.4
## Installation
Simply require the package via composer:
```
composer require php-sprintf-parser
```
Or add it to your `composer.json` manually:
```json
{
"require":{
"mistralys/php-sprintf-parser": "^1.0"
}
}
```
## Usage
### Parse texts with several placeholders
Finding all formatting placeholders in a given string
can be done with the `parseString()` function.
```php
use function Mistralys\SprintfParser\Functions\parseString;
$parser = parseString('The price of product %1$s has been set to %2$.2d EUR.');
$placeholders = $parser->getPlaceholders();
```
Each placeholder instance can then be used to access
all relevant information on the placeholder's configuration,
like its number (if any), precision, width, etc.
### Parse individual formatting strings
Single placeholder format strings can also be parsed
to retrieve information on the placeholder directly.
```php
use function Mistralys\SprintfParser\Functions\parseFormat;
$placeholder = parseFormat('%1$.2d');
```
### Access placeholder information
A placeholder gives access to all individual components of
a format string. As the official PHP documentation for [sprintf][]
states, the format prototype looks like this:
```
%[argnum$][flags][width][.precision]specifier
```
The placeholder class allows easy access to each of these
components. The following is a valid format for example,
which uses all possible options.
```php
use function Mistralys\SprintfParser\Functions\parseFormat;
$placeholder = parseFormat("%1$+-0'*4.3d");
$placeholder->getSpecifier(); // s
$placeholder->getNumber(); // 1
$placeholder->getWidth(); // 4
$placeholder->getPrecision(); // 3
$placeholder->getPaddingChar(); // *
$placeholder->hasPlusMinusPrefix(); // true
$placeholder->hasLeftJustification(); // true
$placeholder->hasOnlyZeroLeftPadding(); // true
```
[sprintf]:https://www.php.net/manual/en/function.sprintf.php