preg_replace vs ereg_replace vs str_replace 在这个特殊情况下
preg_replace vs ereg_replace vs str_replace On This Particular Case
使用 PHP,我想生成自定义 MySQL 转储文件(由于无法使用 exec 和其他一些原因)。
我找到了这 2 个相似的解决方案:
- https://www.kvcodes.com/2017/10/php-create-mysql-backup
- https://davidwalsh.name/backup-mysql-database-php
我要强调的不同部分是:
Link 1:
$row[$j] = preg_replace("#\n#", "\n", $row[$j])
Link 2:
$row[$j] = ereg_replace("\n","\n",$row[$j])
我知道 ereg_replace()
已被弃用。我还假设解决方案 Link 1 中存在错字,应该是:
$row[$j] = preg_replace("\n", "\n", $row[$j])
但是在我的解决方案中,我只是使用:
$row[$j] = str_replace("\n", "\n", $row[$j])
我怎么会使用 str_replace()?
出错呢?我已经测试过转储几个复杂的数据(json、编码、html 语法),一切似乎都正常。 str_replace()
会不会有一些特殊情况与 preg_replace()
的处理方式不同?
If you don't need fancy replacing rules (like regular expressions), you should use this function instead of preg_replace().
如果str_replace()
满足您的需求,就使用它。它会比 preg_replace()
.
快
简单的字符串替换不如正则表达式智能,因此请针对您的应用程序对其进行全面测试。
使用 PHP,我想生成自定义 MySQL 转储文件(由于无法使用 exec 和其他一些原因)。
我找到了这 2 个相似的解决方案:
- https://www.kvcodes.com/2017/10/php-create-mysql-backup
- https://davidwalsh.name/backup-mysql-database-php
我要强调的不同部分是:
Link 1:
$row[$j] = preg_replace("#\n#", "\n", $row[$j])
Link 2:
$row[$j] = ereg_replace("\n","\n",$row[$j])
我知道 ereg_replace()
已被弃用。我还假设解决方案 Link 1 中存在错字,应该是:
$row[$j] = preg_replace("\n", "\n", $row[$j])
但是在我的解决方案中,我只是使用:
$row[$j] = str_replace("\n", "\n", $row[$j])
我怎么会使用 str_replace()?
出错呢?我已经测试过转储几个复杂的数据(json、编码、html 语法),一切似乎都正常。 str_replace()
会不会有一些特殊情况与 preg_replace()
的处理方式不同?
If you don't need fancy replacing rules (like regular expressions), you should use this function instead of preg_replace().
如果str_replace()
满足您的需求,就使用它。它会比 preg_replace()
.
简单的字符串替换不如正则表达式智能,因此请针对您的应用程序对其进行全面测试。