On 05.09.2008 14:57, Stan Vassilev | FM wrote:
I read it. \D in the same string isn't a legal escaped combination and
this is where the user will be warned.
Nope. This is perfectly legal, too.
# php -r 'var_dump("\W\H\A\T?");'
string(9) "\W\H\A\T?"
Hi,
If you'll treat the INI parsing exactly as a string literal in PHP code,
there's no much to be done.
Your proposal is to keep a completely separate method for parsing (the
current one), which also doesn't allow quote as a character (there's no way
to escape it).
My proposal is to have a proper subset of the PHP string literal parsing,
with the additional feature of warning when a user has apparently used the
slash in a way he may not have intended. You wouldn't really escape your
path like this, would you:
c:\Documents\\toby
instead you'd go for:
c:\\Documents\\toby --OR--- c:/Documents/toby
Furthermore, parameters which specify pathnames can check for tabs (\t),
newlines (\n, \r) and null (\0) and warn the user for a possible mistake, we
don't have an actual scenario where a pathname contains tab or a newline,
now do we.
The upside of all this is:
1) consistent handling of PHP.ini, other INI-s, and PHP string literals
2) all those extra checks can be removed in PHP 6 or 7 after the changes
"sink in" into the userbase and it becomes common knowledge that backslash
needs to be escaped.
Regards, Stan Vassilev
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php