We help IT Professionals succeed at work.

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

thenelson
thenelson asked
on
124 Views
1 Endorsement
Last Modified: 2018-12-31
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.
Comment
Watch Question

Analyst Developer
CERTIFIED EXPERT
Distinguished Expert 2018
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
CERTIFIED EXPERT

Author

Commented:
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 AcharkiAnalyst Developer
CERTIFIED EXPERT
Distinguished Expert 2018

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

Author

Commented:
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.
Zakaria AcharkiAnalyst Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
You're welcome, glad to help.