【问题标题】:Replacing eregi_replace with preg_replace用 preg_replace 替换 eregi_replace
【发布时间】:2015-06-19 13:17:05
【问题描述】:

所以我到处寻找如何做到这一点,我找到了一些线程,但没有一个对我有帮助......我理解 /how/ 来替换它,但这个例子很奇怪(不是我的代码,我从别人那里接手的),所以我不确定如何替换它而不会给我带来到处的错误。

其中一个例子是这样的:

$content = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\2</a>",$content);

这是在一个函数中,它将 $content 转换为 BB_Code。 我尝试了以下方法:

$content = preg_replace('/[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]/i','<a href=\"\\1\" target=_blank>\\2</a>',$content);

但它在“r”错误中向我抛出了“未知修饰符”。 也试过了

    $content = preg_replace('/[url=([^[]*)]([^[]*)[/url]/i','<a href=\"\\1\" target=_blank>\\2</a>',$content);

但同样,'r' 中的未知修饰符。

如果这是一个不好的问题,我很抱歉,但我只是想完全了解如何替换它,以便我可以修复语法...

感谢您的帮助!

【问题讨论】:

  • 你查过这个吗?以前有人问过并回答过。
  • 换个角度来看这个,this post may provide you an answer
  • @RiggsFolly 成功了!太感谢了!我真的应该用它来查找 BBcode

标签: php html


【解决方案1】:

您一直在尝试删除错误类型的斜线。您需要删除正斜杠 (/) 而不是反斜杠 (\),因为 / 标志着正则表达式的结束。

只需在 url 前转义 /

\\[url=([^\\[]*)\\]([^\\[]*)\\[\\/url\\]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-05
    • 2011-01-24
    • 2015-08-09
    • 2014-06-10
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多