Statement on glibc/iconv Vulnerability

ini_parse_quantity

(PHP 8 >= 8.2.0)

ini_parse_quantityini ディレクティブの省略形を解釈し、サイズを取得する

説明

ini_parse_quantity(string $shorthand): int

成功した場合に、 ini ディレクティブの省略形 を解釈したサイズをバイト単位で返します。

パラメータ

shorthand

パースする ini ディレクティブの省略形。 数値を指定しなければなりません。そのあとに、オプションの倍率を続けます。 サポートされている倍率は以下のとおりです: k/K (1024), m/M (1048576), g/G (1073741824)。 数値は10進数、16進数(数値の前に 0x,0X を付けた場合)、 8進数(数値の前に 0o, 0O, 0 を付けた場合)、 2進数(数値の前に 0b, 0B を付けた場合) を指定できます。

戻り値

解釈済みのサイズをバイト単位で、整数として返します。

エラー / 例外

値をパースできなかった場合や、 不正な倍率を使った場合には、E_WARNING が発生します。

例1 ini_parse_quantity() の例

<?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'));

?>

上の例の出力は、 たとえば以下のようになります。

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() - 設定オプションの値を得る
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top