如何使用PHP从大字符串中获取流的名称?

时间:2014-08-13 15:36:16

标签: php parsing preg-match-all

我有一个包含流列表的大字符串。我设法得到流网址但现在我想获取流名称(name1,name2,name 3),以便我以后可以使用它们来构建超链接。任何人都可以告诉我如何获得流名称?

    preg_match_all("@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@", $file_contents, $foo); 
    print_r($foo[1]);

  for($i = 0; $i < count($foo[1]); $i++){
             echo $foo[1][$i]."<br>" ; 
    }//end of for

保存流列表($ file_contents)的大字符串示例:

name1 http://somesite.net/all/name1tv.m3u8
name2 http://somesite.net/all/name2tv.m3u8
name3 http://somesite.net/all/name3tv.m3u8

1 个答案:

答案 0 :(得分:0)

首先,您希望将大字符串拆分为一个行数组,以便处理每一行并提取所需的数据。

您可以使用explode()\n作为分隔符来执行此操作:

$stream_array = explode( '\n', $big_stream_string );

现在你要做的就是迭代数组并使用带有空格字符的explode()作为分隔符 - 这会将每一行分成两部分 - 第一部分是名称和第二部分是其余部分:

$names = array();
foreach( $stream_array as $stream ){
  $split = explode( $stream, " " );
  array_push( $names, $split[ 0 ] )
}

现在应该使用流名称填充$names数组。