Функция wp_convert_hr_to_bytes()
в WordPress позволяет преобразовать сокращённые формы байтовых значений, такие как 1M
или 512K
, в целочисленные значения байт. Она полезна для обработки данных из настроек PHP (например, значения upload_max_filesize
), которые часто представлены в сокращённом формате.
wp_convert_hr_to_bytes( string $value ): int
Параметры
- $value
- (string, обязательный) Строка, представляющая значение в байтах в сокращенном (например,
1M
,20K
) или обычном формате.
- (string, обязательный) Строка, представляющая значение в байтах в сокращенном (например,
Возвращаемое значение
Возвращает целочисленное значение в байтах, преобразованное из указанного сокращенного формата.
Пример 1: Преобразование сокращенного значения «2M» в байты
В этом примере сокращенное значение 2M
будет преобразовано в байты. Мы ожидаем получить значение 2097152, так как 1 мегабайт = 1048576 байт.
echo wp_convert_hr_to_bytes('2M'); // 2097152
Результат выполнения кода:
2097152
Пример 2: Преобразование значения «512K» в байты
Значение 512K
будет преобразовано в байты. В результате получаем 524288 байт.
echo wp_convert_hr_to_bytes('512K'); // 524288
Пример 3: Преобразование значения с другими регистрами и пробелами
Эта функция автоматически приводит строку к нижнему регистру и игнорирует пробелы. Ниже приведён пример, который показывает, что 1 mb
, 1 MB
и 1 Mb
дают одинаковый результат.
echo wp_convert_hr_to_bytes('1 mb'); // 1048576
echo wp_convert_hr_to_bytes('1MB'); // 1048576
echo wp_convert_hr_to_bytes('1 Mb'); // 1048576
Пример 4: Преобразование обычного числового значения в байты
В этом примере значение 1000000
просто возвращается, так как оно уже представлено в виде байт, и преобразования не требуется.
echo wp_convert_hr_to_bytes('1000000'); // 1000000
Пример 5: Преобразование значения «5G» в байты
Функция также поддерживает сокращения для гигабайт. В данном случае 5G
преобразуется в 5368709120 байт.
echo wp_convert_hr_to_bytes('5G'); // 5368709120
Применение функции в практике
wp_convert_hr_to_bytes()
часто используется для настройки максимального размера загрузки файлов, проверки допустимых лимитов при загрузке, а также при работе с конфигурацией сервера.
Настройка ограничения на размер загружаемого файла
Предположим, что мы хотим сравнить размер загружаемого файла с лимитом из настроек upload_max_filesize
и выдать предупреждение, если размер файла превышает допустимый лимит.
$upload_limit = wp_convert_hr_to_bytes( ini_get('upload_max_filesize') );
$file_size = 3145728; // Размер файла в байтах (3MB)
if ( $file_size > $upload_limit ) {
echo 'Файл слишком большой для загрузки.';
} else {
echo 'Размер файла допустим.';
}
Заключение
Функция wp_convert_hr_to_bytes()
значительно упрощает работу с ограничениями размера файлов и настройками PHP, позволяя разработчикам удобно преобразовывать текстовые значения в точные числовые значения байт.