Intereting Posts
Как проверить электронную почту и электронную почту уже существует или не проверять в Yii Framework? Как работает jQuery.post () с Content-Disposition: attachment? Каков предел в размере переменной Php при сохранении строки? Как сделать зашифрованную кнопку покупки PayPal с пользовательскими полями? Laravel Auth :: logout не удаляет помнить меня cookie Сравните два массива и список общих записей Ошибка Require_once PHP отправка дополнительных значений в PHP-скрипт с использованием загрузки углового файла Как вставить телугу символов в mysql с помощью php? Является ли деструктор в PHP предсказуемым? Массив MIDB Freebase и отправка нескольких запросов в freebase Измените эту функцию js так, чтобы она использовала значение, полученное из db вместо значений, указанных в массиве, для генерации опций Select Каков правильный способ написания PHPDocs для констант? Как оператор <=> сравнивает объекты? CodeIgniter – Загрузка изображения через форму, сохранение местоположения изображения в базе данных

Как читать файл в PHP, а затем записывать только некоторые строки в другой файл

У меня есть простой текстовый файл (это плейлист 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); ?> 

Документы: http://nz1.php.net/manual/en/function.file.php