如何使用PHP删除文本中的指定段落片段
使用PHP删除指定的M3U8片段内容
因为你要删除的是一段固定的文本内容,直接用str_replace就能高效完成,下面是具体实现代码:
<?php // 原始M3U8内容(如果是从文件读取,改用file_get_contents('your-file.m3u8')) $originalContent = <<<EOT #EXTINF:4.000000, abfa9dadab4000213.ts #EXT-X-DISCONTINUITY #EXTINF:8.333333, abfa9dadab401o620.ts #EXTINF:7.033333, abfa9dadab401o621.ts #EXT-X-DISCONTINUITY #EXTINF:4.000000, EOT; // 要删除的目标片段 $targetToRemove = <<<EOT #EXT-X-DISCONTINUITY #EXTINF:8.333333, abfa9dadab401o620.ts #EXTINF:7.033333, abfa9dadab401o621.ts #EXT-X-DISCONTINUITY EOT; // 统一换行符(避免Windows/Linux换行差异导致匹配失败) $originalContent = str_replace(["\r\n", "\r"], "\n", $originalContent); $targetToRemove = str_replace(["\r\n", "\r"], "\n", $targetToRemove); // 执行删除操作 $processedContent = str_replace($targetToRemove, '', $originalContent); // 输出结果或保存到文件 echo nl2br($processedContent); // 保存文件:file_put_contents('processed.m3u8', $processedContent); ?>
说明
- HEREDOC语法:用来直接保留文本的原始格式,不需要手动处理换行转义,确保目标片段和原始内容格式完全匹配。
- 统一换行符:如果你的原始文件在不同系统下生成,可能存在
\r\n或\r的换行差异,统一转为\n可以保证匹配准确。 - 效率优先:因为是固定字符串匹配,
str_replace比正则表达式preg_replace更高效,也更不容易出现匹配错误。
内容的提问来源于stack exchange,提问作者Kites TV
相关产品推荐
相关产品推荐

