将javascript替换为php preg_replace或str_replace

时间:2011-04-27 08:28:18

标签: php javascript regex preg-replace str-replace

我有两个javascript替换命令,可以完美地工作。我需要让它们在PHP中运行。

var body = body.replace(/\n\n<blockquote>/g, '<blockquote>');
var body = body.replace(/<\/blockquote>\n\n/g, '<\/blockquote>');

我尝试了许多不同的正则表达式和许多str_replace,但是所有这些都失败了。我认为可行的是下面,但他们没有:

$body = preg_replace('/\n+<blockquote>/gi', '<blockquote>', $body);
$body = preg_replace('/</blockquote>\\n+/gi', '</blockquote>', $body);

$body = str_replace( "\n\n<blockquote>", "<blockquote>", $body);
$body = str_replace( "<blockquote>\n\n", "</blockquote>", $body);

基本上,我只需要删除围绕blockquote标签的两个换行符。是的,我已经确认他们是新行,而不是回车。

提前致谢!

2 个答案:

答案 0 :(得分:1)

您在上次通话中错过了/

$body = str_replace("</blockquote>\n\n", "</blockquote>", $body);

使用此修复程序,您的str_replace解决方案应该可以正常工作。我注意到你在正则表达式中使用i修饰符。也许您想使用str_ireplace来进行不区分大小写的替换。

答案 1 :(得分:0)

我认为代码是正确的,问题可能是标记之后或之前的换行符之外的字符。 \n可能在那里,但我很确定你也可能有一些空格。

用于调试目的尝试执行此操作

  • 替换新行

    $ body = str_replace(“\ n”,' - newline--',$ body);

  • 替换你的空白区域。

    $ body = str_replace(“”,' - whitespace--',$ body);

  • 呼应身体

    echo $ body;

如果你有任何东西,你现在会注意到它。 祝你好运:)