Re: RFC: Deprecate mb_ereg_replace eval option

From: Date: Wed, 06 Jan 2016 17:34:54 +0000
Subject: Re: RFC: Deprecate mb_ereg_replace eval option
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-90209@lists.php.net to get a copy of this message
> On 06 Jan 2016, at 18:03, Dan Ackroyd <danack@basereality.com> wrote: > > This is possibly a stupid question, but one that needs to be asked anyway: Certainly not a stupid question. > Have you checked that simply converting code that uses > mb_eregi_replace to using mb_ereg_replace_callback with the i flag > behaves the same in all circumstances? Well the _callback function obviously behaves differently with regards to the, well, callback. I haven’t actually tested it (kinda tough for “all situations”), but if we compare mb_eregi_replace with mb_ereg_replace with the i options is quite easy to see that they behave the same by looking at the source. mb_eregi_replace (https://github.com/php/php-src/blob/master/ext/mbstring/php_mbregex.c#L1035) calls _php_mb_regex_ereg_replace_exec with the flag ONIG_OPTION_IGNORECASE (mb_ereg_replace calls the same function without that flag). When options are set on the function call, those are passed together with that flag to _php_mb_regex_init_options (https://github.com/php/php-src/blob/master/ext/mbstring/php_mbregex.c#L578) which sets the ONIG_OPTION_IGNORECASE when the i option is specified. After that both functions take exactly the same path. I hope that clears it up. Best regards Rouven

« previous php.internals (#90209) next »