У меня есть простой текстовый файл (это плейлист m3u8) на SERVER A. На сервере B мне нужен PHP-скрипт, который читает файл списка воспроизведения, а затем записывает только определенные строки из него в новый файл на сервере B.
Я могу открыть файл через file_get_contents просто отлично и даже записать его в новый файл просто отлично. Но я застрял, выясняя, как взять только определенные строки из файла. Ниже приведен полный список файлов списка воспроизведения. Это всегда будет точно такое же количество строк и того же формата:
#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=678000,RESOLUTION=768x432,CODECS="avc1.77.30,mp4a.40.2" link://me.akamaihd.net/i/242049_1978582_00713dc8_1@105175/index_678_av-p.m3u8? sd=10&dw=100&rebase=on #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=198000,RESOLUTION=480x270,CODECS="avc1.66.30, mp4a.40.2" link://me.akamaihd.net/i/242049_1978582_00713dc8_1@105175/index_198_av-p.m3u8?sd=10&dw=100&rebase=on #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2320000,RESOLUTION=1280x720,CODECS="avc1.77.30, mp4a.40.2" link://me.akamaihd.net/i/242049_1978582_00713dc8_1@105175/index_2320_av-p.m3u8?sd=10&dw=100&rebase=on #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=48000,CODECS="mp4a.40.2" link://me.akamaihd.net/i/242049_1978582_00713dc8_1@105175/index_198_a-p.m3u8?sd=10&dw=100&rebase=on
В приведенном выше примере я хочу записать новый файл с строками 1,2,3,6,7, поэтому новый файл будет выглядеть так:
#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=678000,RESOLUTION=768x432,CODECS="avc1.77.30,mp4a.40.2" link://me.akamaihd.net/i/242049_1978582_00713dc8_1@105175/index_678_av-p.m3u8? sd=10&dw=100&rebase=on #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2320000,RESOLUTION=1280x720,CODECS="avc1.77.30, mp4a.40.2" link://me.akamaihd.net/i/242049_1978582_00713dc8_1@105175/index_2320_av-p.m3u8?sd=10&dw=100&rebase=on
Любая помощь очень ценится. Спасибо!
Используйте file
для чтения файла в массив , а затем укажите те точные строки для создания выходного массива, который вы будете писать в текстовый файл .
<?php $file = file('yourfile.txt'); $output = array(); $lines_you_want = array(1, 2, 3, 6, 7); foreach($lines_you_want as $line_no) { $output[] = $file[$line_no - 1]; // array keys start from zero, not 1 } // write $output array to file // if you want $output as a \n delimited string, implode it: // $output = implode("\n", $output); ?>