1. Go to this page and download the library: Download donatj/printf-parser library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
donatj / printf-parser example snippets
ter = 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;
}
function __construct(\donatj\Printf\Emitter $emitter)
function parseStr(string $string) : void
function getLexemes() : \donatj\Printf\LexemeCollection
function getInvalid() : ?\donatj\Printf\Lexeme
function toArray() : array
function argTypes() : array
namespace donatj\Printf;
class Lexeme {
public const T_INVALID = '';
public const T_LITERAL_STRING = '!';
}
function __construct(string $lexItemType, string $val, int $pos)
function getLexItemType() : string
function getVal() : string
function getPos() : int
namespace donatj\Printf;
class ArgumentLexeme {
/** @var string the argument is treated as an integer and presented as a binary number. */
public const T_INT_AS_BINARY = 'b';
/** @var string the argument is treated as an integer and presented as the character with that ASCII value. */
public const T_INT_AS_CHARACTER = 'c';
/** @var string the argument is treated as an integer and presented as a (signed) decimal number. */
public const T_INT = 'd';
/** @var string the argument is treated as scientific notation (e.g. 1.2e+2). The precision specifier stands for the
number of digits after the decimal point since PHP 5.2.1. In earlier versions, it was taken as number of
significant digits (one less). */
public const T_DOUBLE_AS_SCI = 'e';
/** @var string like %e but uses uppercase letter (e.g. 1.2E+2). */
public const T_DOUBLE_AS_SCI_CAP = 'E';
/** @var string the argument is treated as a float and presented as a floating-point number (locale aware). */
public const T_FLOAT_LOCALE = 'f';
/** @var string the argument is treated as a float and presented as a floating-point number (non-locale aware).
Available since PHP 5.0.3. */
public const T_FLOAT_NO_LOCALE = 'F';
/** @var string shorter of %e and %f. */
public const T_FLOAT_AUTO_SCI = 'g';
/** @var string shorter of %E and %F. */
public const T_FLOAT_AUTO_SCI_CAP = 'G';
/** @var string the argument is treated as an integer and presented as an octal number. */
public const T_INT_AS_OCTAL = 'o';
/** @var string the argument is treated as and presented as a string. */
public const T_STRING = 's';
/** @var string the argument is treated as an integer and presented as an unsigned decimal number. */
public const T_INT_UNSIGNED = 'u';
/** @var string the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters). */
public const T_INT_HEX = 'x';
/** @var string the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters). */
public const T_INT_HEX_CAP = 'X';
public const VALID_T_TYPES = [self::T_INT_AS_BINARY, self::T_INT_AS_CHARACTER, self::T_INT, self::T_DOUBLE_AS_SCI, self::T_DOUBLE_AS_SCI_CAP, self::T_FLOAT_LOCALE, self::T_FLOAT_NO_LOCALE, self::T_FLOAT_AUTO_SCI, self::T_FLOAT_AUTO_SCI_CAP, self::T_INT_AS_OCTAL, self::T_STRING, self::T_INT_UNSIGNED, self::T_INT_HEX, self::T_INT_HEX_CAP];
public const ARG_TYPE_MISSING = '';
public const ARG_TYPE_INT = 'int';
public const ARG_TYPE_DOUBLE = 'float';
public const ARG_TYPE_STRING = 'string';
/** @var string[] string s */
public const STRING_TYPES = [self::T_STRING];
/** @var string[] integer d, u, c, o, x, X, b */
public const INTEGER_TYPES = [self::T_INT, self::T_INT_UNSIGNED, self::T_INT_AS_CHARACTER, self::T_INT_AS_OCTAL, self::T_INT_HEX, self::T_INT_HEX_CAP, self::T_INT_AS_BINARY];
/** @var string[] double g, G, e, E, f, F */
public const DOUBLE_TYPES = [self::T_FLOAT_AUTO_SCI, self::T_FLOAT_AUTO_SCI_CAP, self::T_DOUBLE_AS_SCI, self::T_DOUBLE_AS_SCI_CAP, self::T_FLOAT_LOCALE, self::T_FLOAT_NO_LOCALE];
public const T_INVALID = '';
public const T_LITERAL_STRING = '!';
}
function __construct(string $lexItemType, string $val, int $pos, ?int $arg, bool $showPositive, ?string $padChar, ?int $padWidth, bool $leftJustified, ?int $precision)
function getArg() : ?int
function getShowPositive() : bool
function getPadChar() : ?string
function getPadWidth() : ?int
function getLeftJustified() : bool
function getPrecision() : ?int
function argType() : string
function getLexItemType() : string
function getVal() : string
function getPos() : int
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.