Skip to content
Advertisement

preg_replace vs ereg_replace vs str_replace On This Particular Case

Using PHP, I want to generate custom MySQL dump file (due to cannot use exec and a few other reasons). So I found these 2 similar solutions:

  1. https://www.kvcodes.com/2017/10/php-create-mysql-backup
  2. https://davidwalsh.name/backup-mysql-database-php

The different part that I want to highlight is:

Link 1:
$row[$j] = preg_replace("#n#", "\n", $row[$j])

Link 2:
$row[$j] = ereg_replace("n","\n",$row[$j])

I know that ereg_replace() is depreciated. I also assume that there’s typo in solution Link 1 which should be:

$row[$j] = preg_replace("n", "\n", $row[$j])

But then in my solution, I simply use:

$row[$j] = str_replace("n", "\n", $row[$j])

So my question is, how could I be wrong by using str_replace()? I’ve tested dumping several complex data (json, coding, html syntax) and all seems ok. Could there some special case that str_replace() would handle differently than preg_replace()?

Conslusion:

Based on all feedbacks here, I changed my solution similar to Link 1 because its more bullet proof across platform.

Advertisement

Answer

From the manual

If you don’t need fancy replacing rules (like regular expressions), you should use this function instead of preg_replace().

If str_replace() does what you need, then use it. It will be faster than preg_replace().

The simple string replacement is not as intelligent as a regular expression, so test it thoroughly for your application.

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement