1. Go to this page and download the library: Download tschope/m3u-parser library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tschope / m3u-parser example snippets
use M3uParser\M3uParser;
$m3uParser = new M3uParser();
$m3uParser->addDefaultTags();
$data = $m3uParser->parseFile('path_to_file.m3u');
print_r($data->getAttributes());
/*
Array
(
[url-tvg] => http://www.teleguide.info/download/new3/jtv.zip
[m3uautoload] => 1
[deinterlace] => 8
[cache] => 500
)
*/
/** @var \M3uParser\M3uEntry $entry */
foreach ($data as $entry) {
print_r($entry);
/*
M3uParser\M3uEntry Object
(
[lineDelimiter:protected] =>
[extTags:M3uParser\M3uEntry:private] => Array
(
[0] => M3uParser\Tag\ExtInf Object
(
[title:M3uParser\Tag\ExtInf:private] => TV SLO 1 HD
[duration:M3uParser\Tag\ExtInf:private] => 1
[attributes:M3uParser\Tag\ExtInf:private] => Array
(
)
)
[1] => M3uParser\Tag\ExtTv Object
(
[tags:M3uParser\Tag\ExtTv:private] => Array
(
[0] => Slovenski
[1] => HD
)
[language:M3uParser\Tag\ExtTv:private] => slv
[xmlTvId:M3uParser\Tag\ExtTv:private] => SLO1HD
[iconUrl:M3uParser\Tag\ExtTv:private] =>
)
)
[path:M3uParser\M3uEntry:private] => rtp://@232.2.201.53:5003
)
*/
echo $entry->getPath() . "\n";
foreach ($entry->getExtTags() as $extTag) {
switch ($extTag) {
case $extTag instanceof \M3uParser\Tag\ExtInf: // If EXTINF tag
echo $extTag->getTitle() . "\n";
echo $extTag->getDuration() . "\n";
if ($extTag->hasAttribute('tvg-name')) { // If tvg-name attribute in EXTINF tag
echo $extTag->getAttribute('tvg-name') . "\n";
}
break;
case $extTag instanceof \M3uParser\Tag\ExtTv: // If EXTTV tag
echo $extTag->getXmlTvId() . "\n";
echo $extTag->getIconUrl() . "\n";
echo $extTag->getLanguage() . "\n";
foreach ($extTag->getTags() as $tag) {
echo $tag . "\n";
}
break;
}
}
}
use M3uParser\M3uData;
use M3uParser\M3uEntry;
use M3uParser\Tag\ExtInf;
use M3uParser\Tag\ExtTv;
$entry = new M3uEntry();
$entry->setPath('test-path');
$entry->addExtTag(
(new ExtInf())
->setDuration(123)
->setTitle('extinf-title')
->setPatch('http://srv.test-tvchannel.vip:8880/101525')
->setAttribute('test-attr', 'test-attrname')
);
$entry->addExtTag(
(new ExtTv())
->setIconUrl('https://example.org/icon.png')
->setLanguage('ru')
->setXmlTvId('xml-tv-id')
->setPatch('http://srv.test-tvchannel.vip:8880/101525')
->setTags(['hd', 'sd'])
);
$data = new M3uData();
$data->setAttribute('test-name', 'test-value');
$data->append($entry);
echo $data;
/*
#EXTM3U test-name="test-value"
#EXTINF: 123 test-attr="test-attrname", extinf-title
http://srv.test-tvchannel.vip:8880/101525
#EXTTV: hd,sd;ru;xml-tv-id;https://example.org/icon.png
http://srv.test-tvchannel.vip:8880/101525
test-path
*/