Link to home
Create AccountLog in
Avatar of thenelson
thenelson

asked on

Help with PHP: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

When I upgrade PHP on my webserver from version 5.4 to 5.6, I get:
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home3/thenelson/public_html/barnwellmd/secure/Services/Twilio/Resource.php on line 90

Here is the code around line 90:
/**
     * Return camelized version of a word
     * Examples: sms_messages => SMSMessages, calls => Calls, 
     * incoming_phone_numbers => IncomingPhoneNumbers
     *
     * @param string $word The word to camelize
     * @return string
     */
    public static function camelize($word) {
        return preg_replace('/(^|_)([a-z])/e', 'strtoupper("\\2")', $word);
    }

Open in new window

I went online and read about the /e modifier and preg_replace_callback and I am a bit lost. What does the /e modifier do? Can I just remove the /e modifier from preg_replace? Can I change preg_replace to preg_replace_callback, remove the /e modifier or do I need to do more?

Thanks.
ASKER CERTIFIED SOLUTION
Avatar of Zakaria Acharki
Zakaria Acharki
Flag of Morocco image

Link to home
membership
Create an account to see this answer
Signing up is free. No credit card required.
Create Account
Avatar of thenelson
thenelson

ASKER

Quite strange: I changed the code to:
    public static function camelize($word) {
        //return preg_replace('/(^|_)([a-z])/e', 'strtoupper("\\2")', $word);
		return  str_replace('_', '', ucwords($word, "_"));
    }

Open in new window

and uploaded the new Resource.php to my webserver but when I upgrade my PHP to version 5.6, I still get the exact same message.

None of the PHP scripts I have on my webserver reference Resource.php so I am guessing the code in Resource.php is being called by twillio.com which is processing some of the code.  I sent an email asking them about that.

Thanks for your help. I'll let you know what I find out.
You're welcome, Yes that strange make sure all goes right from your side and we hope they will answer quickly.
The problem preg_replace() code runs off the twilio.com website. Twilio has upgraded code. I am communicating with them to switch to it.

Thanks for your input.
You're welcome, glad to help.