【发布时间】:2018-09-22 08:44:32
【问题描述】:
我有一个包含大约 1800 行数据的 .lst(playlist) 文件。每行都包含一个指向正在我的广播电台上播放的音频文件的 URL。 问题是我需要在该文件中的每 'n' 行之后添加一些广告的 URL。
有10个广告URL,每5行后需要添加1个URL。
示例:广告的 URL 格式如下:file1.mp3, file2.mp3 ... file10.mp3
它们将像这样添加:file1.mp3 在第 5 行,file2.mp3 在第 10 行,file3.mp3 在第 15 行,依此类推。插入file10.mp3 后,会再次从file1.mp3 开始。希望你能理解。
到目前为止,我已经设法编写了以下代码,但它只需要添加一个字符串,并且必须手动告诉要添加字符串的行号。无法弄清楚执行上述工作的循环逻辑。
$url = "/home/station/content/file1.mp3";
$line_number = 5; //add above URL on line number 5
$contents = file('playlist.lst', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if($line_number > sizeof($contents)) {
$line_number = sizeof($contents) + 1;
}
array_splice($contents, $line_number-1, 0, array($url));
$contents = implode("\n", $contents);
file_put_contents('playlist.lst', $contents);
我怎样才能做到这一点?
【问题讨论】:
-
具体的问题是什么?您可以从 5 开始循环并以 5 为步长增加,直到达到广告数量的 5 倍。
-
不要忘记第 15 行的项目在第一次插入后将在第 16 行,在第二次插入后在第 17 行...
-
@Justinas 哇,我完全忘记了这个……好建议!