0

在 PHP5 中运行以前的 PHP 4 页面时,我得到了已弃用的错误:我知道那里有一些反斜杠。(或者是正斜杠?)但是要替换的“+”项让我失望。

不推荐使用 ereg_replace() 函数:

$perms = ereg_replace(" +", "&", @trim($tmp[0]));

现在下面这个真的让我心烦意乱。只有在用完我的键盘 GOOGLE 键后,我才有机会粘贴一些代码。我决定回答这个问题,希望能帮助像我这样有挑战的人。什么是“回调函数”?我知道,我可能整天在其他编程语言中使用这些东西。那好吧。我认为我的焦虑程度使我无法正确选择一个论坛来回答我的简单初学者问题。

preg_replace():不推荐使用 /e 修饰符,请改用 preg_replace_callback:

$string = preg_replace("/&#([0-9]+)/e","chr('\\1')",$string);

我对其他 StackOverKnow 线程和答案的困惑是示例过于复杂。我认为某人(包括我)可以从某人中受益,只需键入以正确语法固定的示例。我只是不太关注这个主题,而且由于这个 RTF 生成器中有数百万行代码,我不得不升级我害怕“弹簧!” 效果:我改变了一些东西,并且出现了级联问题,我永远无法将它改回来。

我们为我们的俱乐部购买了一个漂亮的RTF 生成器,以便从我们的 PHP 远足列表中生成一个 Word 文档。这是我发现折旧错误的地方。只是说,有一天你可能需要一个用 PHP 创建的 Word 文档。很难找到这些东西,而且在过去的 9 年里一直运行良好。

4

1 回答 1

1

“+”令人困惑,因为双引号和加号让我认为它是函数的一部分,而不是输入。

$perms = ereg_replace(" +", "&", @trim($tmp[0]));

answer: preg_replace("/ +/", "&", @trim($tmp[0]));

这让我摸不着头脑“什么功能?没有功能!” 直到我发现这个几乎晦涩难懂的例子并选择了中间解决方案

preg_replace():不推荐使用 /e 修饰符,请改用 preg_replace_callback:

$string = preg_replace("/&#([0-9]+)/e","chr('\\1')",$string);

$string = preg_replace_callback("/&#([0-9]+)/", create_function ('$matches', 'return chr($matches[1]);'),$string);

我发现此链接与折旧和替换之间的比较非常有用。

于 2015-11-15T19:38:45.853 回答