【问题标题】:replacement for ereg_replace [duplicate]替换ereg_replace [重复]
【发布时间】:2011-06-25 01:09:01
【问题描述】:

可能重复:
How can I convert ereg expressions to preg in PHP?

我已经升级了 php,现在我收到了 ereg_replace deprecated 错误。

我在网上做了一些搜索,发现我可以使用 preg 代替,但不确定如何正确更改此代码

$scriptName = ereg_replace(
    "^".$_SERVER["DOCUMENT_ROOT"], "", 
    $_SERVER["SCRIPT_FILENAME"]
);

【问题讨论】:

  • @Goran 伙计们,这不是开玩笑。移动它。
  • @Linus:确实是个肮脏的把戏。
  • 哦,来代替ereg REPLACE?!干得好,我的主要工作不是喜剧:(

标签: php regex preg-replace ereg-replace


【解决方案1】:

当 $_SERVER["DOCUMENT_ROOT"] 的值中包含特殊字符时,仅添加分隔符将不起作用。您需要按如下方式转义它们:

$scriptName = preg_replace(
  "/^".preg_quote($_SERVER["DOCUMENT_ROOT"],"/")."/",
  "", 
  $_SERVER["SCRIPT_FILENAME"]
);

【讨论】:

  • 欢呼@高度不规则
【解决方案2】:

e 替换为p

在第一个参数的开头和结尾添加一个分隔符。传统上,人们使用斜杠 (/),但我更喜欢使用 ~,因为在正则表达式中实际使用该字符的机会较小。

【讨论】:

  • 没有。那不行。 preg_replace 需要分隔符,而 ereg_replace 不需要。你应该改写一下这个答案。
  • prpgrpplacp 在我的机器上出错。 :)
  • @Tim 这意味着您的 PHP 配置错误。在文本编辑器中打开 php.ini 并找到以下行:la_disparition= 将其设置为等于p。如果您在共享主机上,则可以通过调用 gadsby('p') 即时完成。
猜你喜欢
  • 2011-04-08
  • 2013-11-23
  • 2014-01-10
  • 2013-05-26
  • 1970-01-01
  • 2012-01-28
  • 2013-07-17
  • 2012-08-06
  • 1970-01-01
相关资源
最近更新 更多