Php 预更换can';我不能经营新的生产线

Php 预更换can';我不能经营新的生产线,php,regex,preg-replace,Php,Regex,Preg Replace,我有一个HTML文档,我想从中删除块(从日期20170908开始,以下一个脚本标记结束),但是preg_replace无法检测到新行下方的任何内容。若我手动删除换行符,reg表达式可以工作,但我希望以编程方式修剪它们。HTML文档的一部分: <script type="text/javascript" src="iam.js"></script><script type="text/javascript"src="/search.js"&g

我有一个HTML文档,我想从中删除块(从日期20170908开始,以下一个脚本标记结束),但是preg_replace无法检测到新行下方的任何内容。若我手动删除换行符,reg表达式可以工作,但我希望以编程方式修剪它们。HTML文档的一部分:

    <script type="text/javascript" src="iam.js"></script><script 
        type="text/javascript"src="/search.js"></script><script 
        type="text/javascript" > /* 20170908 */ function uabpd4(){
        //some function
    } 
    </script>
/*20170908*/功能uabpd4(){
//某些功能
} 
在PHP中,我执行以下操作:

    $content = trim(preg_replace('/\s+/', ' ', $content)); // just trying to get rid of newlines, but nothing from this works
    $content = preg_replace( "/\r|\n/is", "", $content);
    $content = str_replace(array("\n", "\t", "\r"), '', $content);
    $content = preg_replace("/\/\* $date(.*?)(((?!script>).)uabpd4(.*?script>))/is", "WORKS </script>", $content);
$content=trim(preg_replace('/\s+/','$content));//只是想摆脱新词,但这一切都不管用
$content=preg_replace(“/\r |\n/is“,”,$content);
$content=str_replace(数组(“\n”、“\t”、“\r”)、”$content);
$content=preg\u replace(“/\/\*$date(.*?((!script>)))uabpd4(.*?script>)/is”,“WORKS”,$content);

谢谢。

如果我理解您的意思是正确的,您希望删除带有日期的javascript部分

这是一种方法,匹配要删除的零件,然后使用str_replace将其删除

$re = '/.*script type.*<script.*type.*?>(.*?uabpd4.*})/s';
$str = '<script type="text/javascript" src="iam.js"></script><script 
        type="text/javascript"src="/search.js"></script><script 
        type="text/javascript" > /* 20170908 */ function uabpd4(){
        //some function
    } 
    </script>';

preg_match($re, $str, $m);

echo str_replace($m[1], "",  $str);
$re='/.*脚本类型。*(.*uabpd4.*})/s';
$str='/*20170908*/函数uabpd4(){
//某些功能
} 
';
预赛($re,$str,$m);
echo str_替换($m[1],“”,$str);

很好,你想做什么?是的,因为你自己已经删除了新行。。这是你要找的吗?我的问题不是我的正则表达式,它确实有效,而是当有新行时它不起作用。问题仍然存在。这也适用于新生产线。我不明白这个问题。。。