替换ereg_replace [复制]

replacement for ereg_replace [duplicate]

提问人:Epiphanisation 提问时间:2/11/2011 最后编辑:CommunityEpiphanisation 更新时间:10/29/2012 访问量:1325

问:

这个问题在这里已经有答案了:
11年前关闭。

可能的重复:
如何在 PHP 中将 ereg 表达式转换为 preg?

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

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

$scriptName = ereg_replace(
    "^".$_SERVER["DOCUMENT_ROOT"], "", 
    $_SERVER["SCRIPT_FILENAME"]
);
php 正则表达式 preg-replace ereg-replace

评论

0赞 Linus Kleen 2/11/2011
@Goran 伙计们,这里不是开玩笑。继续前进。
0赞 Goran Jovic 2/11/2011
@Linus:确实是一个肮脏的伎俩。
0赞 Epiphanisation 2/11/2011
哦,来代替ereg REPLACE?!干得好,我的主要工作不是喜剧:(

答:

6赞 sdleihssirhc 2/11/2011 #1

将 替换为 .ep

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

评论

0赞 Linus Kleen 2/11/2011
不。那行不通。 需要分隔符,而不需要。你应该稍微改写一下这个答案。preg_replaceereg_replace
3赞 Tim Pietzcker 2/11/2011
prpgrpplacp我的机器上出现错误。:)
0赞 sdleihssirhc 2/11/2011
@Tim 这意味着你的PHP配置错误。在文本编辑器中打开 php.ini 并找到以下行: 将其设置为等于 .如果您在共享主机上,则可以通过调用 来即时执行此操作。la_disparition=pgadsby('p')
1赞 Highly Irregular 2/11/2011 #2

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

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

评论

0赞 Epiphanisation 2/15/2011
不规则@Highly欢呼