【问题标题】:Remove All characters between two Tags in PHP删除PHP中两个标签之间的所有字符
【发布时间】:2015-03-21 16:37:09
【问题描述】:

我正在尝试检测标签并从 PHP 中的文件中删除带有字符的整个标签。这是我要替换或删除它的文本文件的一部分:

//CODE START//
Some Content Between Tags
//CODE END//

我写了这段代码:

$File = file_get_contents('file.text');
$File = preg_replace( "#//CODE START//(.+?)//CODE END//#is", '', $File );
file_put_contents('new.text', $File);

问题是,代码不工作!有了这个我可以删除第一行:

$File = preg_replace( "#//CODE START//#i", '', $File );

但是我怎样才能删除所有这 3 行?从 //CODE START// 一直到 //CODE END//

谢谢

更新:我找到了:

$File = preg_replace( "/\/\/CODE START\/\/(.+?)\/\/CODE END\/\//ims", '', $File );

【问题讨论】:

  • 您是否尝试使用m 修饰符来允许多行匹配? php.net/manual/en/reference.pcre.pattern.modifiers.php
  • s 也可以完成这项工作。
  • 我该怎么做?我的代码哪里出了问题?
  • 为什么要更改更新中的分隔符? # 的可读性更高。
  • 能否给我看一下带有#的代码?

标签: php regex text replace


【解决方案1】:

找出区别:

//INSTALL END//
       ^^--- two L's

[..snip..] "#//INSTALL START//(.+?)//INSTAL END//#is", '', $File );
                                          ^---single L

哦,太棒了,忍者编辑完全把它从水里弄出来了......

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多