I made a very basic polyfill for this function, you're welcome to use
<?php
if(!function_exists('ini_parse_quantity')) {
/**
* Very basic polyfill for ini_parse_quantity
* @license MPL-2.0
* @license CC-BY-3.0
*/
function ini_parse_quantity($shorthand) {
$regex = '/^(0?[xXbBoO]?)([0-9A-Fa-f]*)([kKmMgG]?)$/';
preg_match($regex, $shorthand, $matches);
if(empty($matches)) {
trigger_error('Can\'t parse '.$shorthand.' :(', E_USER_WARNING);
return 0;
}
[ $full, $binOctHex, $value, $unit ] = $matches;
switch ($binOctHex) {
case '0b':
case '0B':
$base = 2;
break;
case '0o':
case '0O':
case '0':
$base = 8;
break;
case '0x':
case '0X':
$base = 16;
break;
default:
$base = 10;
break;
}
$value = intval($value, $base);
switch ($unit) {
case 'g':
case 'G':
$value *= 1024;
case 'm':
case 'M':
$value *= 1024;
case 'k':
case 'K':
$value *= 1024;
default:
break;
}
return $value;
}
}ini_parse_quantity
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ini_parse_quantity
Референца за `function.ini-parse-quantity.php` со подобрена типографија и навигација.
ini_parse_quantity
(PHP 8 >= 8.2.0)
ini_parse_quantity — (PHP 8 >= 8.2.0)
= NULL
Добиј ја интерпретираната големина од кратката синтакса на ini Враќа интерпретирана големина во бајти при успех од.
Параметри
shorthand-
кратка форма на ini
k/K(1024),m/M(1048576),g/G(1073741824Краток ini за парсирање, мора да биде број проследен со опционален множител. Поддржани се следните множители:0xor0X). Бројот може да биде децимален, хексадецимален (со префикс0o,0Oor0), октален (со префикс0bor0B)
Вратени вредности
) или бинарен (со префикс int.
Errors/Exceptions
Враќа интерпретирана големина во бајти како E_WARNING се креира.
Примери
Ако вредноста не може да се парсира, или се користи невалиден множител, ini_parse_quantity() examples
<?php
var_dump(ini_parse_quantity('1024'));
var_dump(ini_parse_quantity('1024M'));
var_dump(ini_parse_quantity('512K'));
var_dump(ini_parse_quantity('0xFFk'));
var_dump(ini_parse_quantity('0b1010k'));
var_dump(ini_parse_quantity('0o1024'));
var_dump(ini_parse_quantity('01024'));
var_dump(ini_parse_quantity('Foobar'));
var_dump(ini_parse_quantity('10F'));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
int(1024) int(1073741824) int(524288) int(261120) int(10240) int(532) int(532) Warning: Invalid quantity "Foobar": no valid leading digits, interpreting as "0" for backwards compatibility int(0) Warning: Invalid quantity "10F": unknown multiplier "F", interpreting as "10" for backwards compatibility int(10)
Види Исто така
- ini_get() - Го добива вредноста на опцијата за конфигурација