php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #64530 Missing function to translate shorthand notation to bytes
Submitted: 2013-03-27 08:42 UTC Modified: 2021-08-26 14:14 UTC
Votes:2
Avg. Score:4.5 ± 0.5
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: contact at jfsimon dot fr Assigned:
Status: Open Package: *General Issues
PHP Version: 5.3.23 OS:
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: contact at jfsimon dot fr
New email:
PHP Version: OS:

 

 [2013-03-27 08:42 UTC] contact at jfsimon dot fr
Description:
------------
It would be really nice to add a 'ini_translate_shortand($shortand)' function as 
this is a real pain to exactly know how to do it.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-03-27 08:46 UTC] contact at jfsimon dot fr
This took me 4 days and 3 PRs to correctly add this method in Symfony.
https://github.com/symfony/symfony/pull/7456
https://github.com/symfony/symfony/pull/7481
https://github.com/symfony/symfony/pull/7489
 [2013-03-27 08:59 UTC] victor at suumit dot com
'ini_translate_shortand($shorthand)' should translate a shorthand notation to its 
integer counterpart.

This is useful as the process is not as simple as described in the doc @ 
http://www.php.net/manual/en/function.ini-get.php - the doc needs either to be 
fixed or at least a warning should be added as not all formats are supported by 
the given conversion method.

The method described in the doc is wrong as octal and hexadecimal values are 
supported in the shorthand notation (008, 0x10M, ...)
 [2021-08-26 14:14 UTC] cmb@php.net
Admittedly, it's not trivial to port zend_atol()[1] to userland;
you can get mostly away with using intval($foo, 0) and switching
on the last character, but that doesn't cater to stuff like

    128 (hey cool, I can leave a comment here!) M

what is "perfectly" valid, and is parsed like 128M.  In my
opinion, this is a bug, but one that we can't easily fix for BC
reasons.

To cater to that you actually need regexps, so this feature
request makes some sense.

[1] <https://github.com/php/php-src/blob/php-7.4.23/Zend/zend_operators.c#L109-L134>
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Dec 11 13:01:29 2024 UTC