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

Reply via email to