放入txt文件

时间:2017-04-09 15:38:57

标签: php

大家早上好,从互联网上,我下载了一个文本文件,其中包含许多指向电视节目和电影流媒体频道的链接,但它是以随机顺序呈现的,有一种方法可以在php中根据一个重新排序每一行命令我可以通过数组或其他东西设置我? 这是一个示例,说明复合和文件如何使用通道tv的名称给出不同的顺序,它是所有行中唯一更改的源。他们是初学者,我在网络中寻找的日子怎么做,但我找不到能够说明问题的例子。谢谢。

 <a href='http://example.com:80/tv/example/playlist.m3u8'>AdamTV</a>
 <a href='http://example.com:80/tv/example/playlist.m3u8'>Skynews</a>
 <a href='http://example.com:80/tv/example/playlist.m3u8'>NaturalTV</a>
 <a href='http://example.com:80/tv/example/playlist.m3u8'>SportTV</a>
 <a href='http://example.com:80/tv/example/playlist.m3u8'>Channel4</a>

这就是我想要做的,开始逐行读取文件,但我错误已弃用:不推荐使用函数split()

<?php
$linee = file("file.txt");
while(list(,$value) = each($linee)) {
list($url, $channel) = split("[>]", $value);
$params["url"] = trim($url);
$params["channel"] = trim($channel);
echo $params["url"]."   ".$params["channel"];
}

1 个答案:

答案 0 :(得分:0)

将文件读入数组,然后使用usort对数组进行排序 - 这样您就可以从链接中提取电视节目名称(例如,使用preg_match)并进行比较。

示例:

$linee = [
    "<a href='http://example.com:80/tv/example/playlist.m3u8'>AdamTV</a>",
    "<a href='http://example.com:80/tv/example/playlist.m3u8'>Skynews</a>",
    "<a href='http://example.com:80/tv/example/playlist.m3u8'>NaturalTV</a>",
    "<a href='http://example.com:80/tv/example/playlist.m3u8'>SportTV</a>",
    "<a href='http://example.com:80/tv/example/playlist.m3u8'>Channel4</a>",
];

usort(
    $linee,
    function($a, $b) {
        preg_match("/>(.*)</", $a, $a_val);
        preg_match("/>(.*)</", $b, $b_val);

        if ($a_val[0] == $b_val[0]) {
            return 0;
        }
        return ($a_val[0] < $b_val[0]) ? -1 : 1;
    }
);

print_r($linee);