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.
PHP

Avatar of undefined
Last Comment
Zakaria Acharki

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Zakaria Acharki

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
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.
Zakaria Acharki

You're welcome, Yes that strange make sure all goes right from your side and we hope they will answer quickly.
thenelson

ASKER
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.
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck
Zakaria Acharki

You're welcome, glad to help.