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
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
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: Sat Dec 21 16:01:28 2024 UTC