PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 4.7.0
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v4.7.0
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
wp-optimize / vendor / rosell-dk / webp-convert / src / Convert / Helpers / PhpIniSizes.php

PhpIniSizes.php in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 4.7.0, at vendor/rosell-dk/webp-convert/src/Convert/Helpers/PhpIniSizes.php

71 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WebPConvert\Convert\Helpers;
4
5 /**
6 * Get/parse shorthandsize strings from php.ini as bytes.
7 *
8 * Parse strings like "1k" into bytes (1024).
9 *
10 * @package WebPConvert
11 * @author Bjørn Rosell <[email protected]>
12 * @since Class available since Release 2.0.0
13 */
14 class PhpIniSizes
15 {
16
17 /**
18 * Parse a shordhandsize string as the ones returned by ini_get()
19 *
20 * Parse a shorthandsize string having the syntax allowed in php.ini and returned by ini_get().
21 * Ie "1K" => 1024.
22 * Strings without units are also accepted.
23 * The shorthandbytes syntax is described here: https://www.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
24 *
25 * @param string $shortHandSize A size string of the type returned by ini_get()
26 * @return float|false The parsed size (beware: it is float, do not check high numbers for equality),
27 * or false if parse error
28 */
29 public static function parseShortHandSize($shortHandSize)
30 {
31
32 $result = preg_match("#^\\s*(\\d+(?:\\.\\d+)?)([bkmgtpezy]?)\\s*$#i", $shortHandSize, $matches);
33 if ($result !== 1) {
34 return false;
35 }
36
37 // Truncate, because that is what php does.
38 $digitsValue = floor($matches[1]);
39
40 if ((count($matches) >= 3) && ($matches[2] != '')) {
41 $unit = $matches[2];
42
43 // Find the position of the unit in the ordered string which is the power
44 // of magnitude to multiply a kilobyte by.
45 $position = stripos('bkmgtpezy', $unit);
46
47 return floatval($digitsValue * pow(1024, $position));
48 } else {
49 return $digitsValue;
50 }
51 }
52
53 /*
54 * Get the size of an php.ini option.
55 *
56 * Calls ini_get() and parses the size to a number.
57 * If the configuration option is null, does not exist, or cannot be parsed as a shorthandsize, false is returned
58 *
59 * @param string $varname The configuration option name.
60 * @return float|false The parsed size or false if the configuration option does not exist
61 */
62 public static function getIniBytes($iniVarName)
63 {
64 $iniVarValue = ini_get($iniVarName);
65 if (($iniVarValue == '') || $iniVarValue === false) {
66 return false;
67 }
68 return self::parseShortHandSize($iniVarValue);
69 }
70 }
71