大家早上好,从互联网上,我下载了一个文本文件,其中包含许多指向电视节目和电影流媒体频道的链接,但它是以随机顺序呈现的,有一种方法可以在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"];
}
答案 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);