preg_replaceは改行の下にあるものは検出できませんが、ブロックを削除したい場所(次のスクリプトタグで終わる日付20170908から始まる)からHTML文書があります。手動で改行を削除すると、reg式は機能しますが、プログラムでトリムする必要があります。 PHPでpreg_replaceは新しい行を処理できません
<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>
私は次のようにします:
$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);
ありがとうHTML文書の一部。
https://regex101.com/r/E1yHVY/2 – RomanPerekhrest
何をしようとしている正常に動作しますか? – Andreas
はい、自分で改行を削除したためです。 – user3099909