2012-06-05 40 views
1

我有一个文本文件,列出了艺术家列出双空间后的曲目名称。为了让我从Last.fm中获取专辑封面,我必须在URL中包含标题和艺术家,例如http://ws.audioscrobbler.com/2.0/?method=track.getinfo&track=TRACK TITLE&artist=ARTIST。由于艺术家和曲目的标题不是单独的文件,是否有办法在双倍空间之前获得该部分,并将其命名为$ title和双空间之后的部分并将其命名为$ artist,以便我可以回显它进入网址?阅读文件内容的前半部分和回声,然后是后半部分

这是我目前必须得到该文件的内容:

<?php 
$current = file_get_contents('RBDS%20Text.txt'); 
echo $current; 
?> 

谢谢!

编辑:

所以文本文件输出 “曲目标题[双空间]艺术家”

对于Last.FM我必须在URL track=TRACK TITLE&artist=ARTIST

+0

您读取整个文件然后处理该文件。 – 2012-06-05 04:19:12

+0

你可以在你的问题中添加几行输入,以及你需要它产生的输出吗?此外,除了获取数据之外,您还尝试将其转换为您需要的格式? – Graham

+0

在PHP中使用卷标 – 2012-06-05 04:19:58

回答

1

如果我理解你很好,你想是这样的:

list($title, $track) = explode(' ', trim(file_get_contents('RBDS%20Text.txt')), 2); 
1

使用explode

$current = file_get_contents("RBDS%20Text.txt"); 
$chunks = explode(" ", $current, 2); 
$title = $chunks[0]; 
$artist = $chunks[1]; 

上述唯一的问题是,如果标题包含双空间,它可能遇到的问题。

1
<?php 
// build $url here 
$result = file_get_contents($url); 
list($title, $artist) = explode(" ", $result); 

您现在可以通过$title访问您的VAR和$artist

0

首先,我们的数据...

[[email protected] ~]$ cat RBDS_Text.txt 
My first song Crazy Bad Band 
Thriller Michael Jackson 

接下来,一个PHP脚本:

[[email protected] ~]$ cat rbds.php 
#!/usr/local/bin/php 
<?php 

$lines = file("RBDS_Text.txt"); 

$fmt="http://ws.audioscrobbler.com/2.0/?method=track.getinfo&track=%s&artist=%s"; 

foreach ($lines as $line) { 
     $data=explode(" ",$line); 
     printf($fmt, urlencode($data[0]), urlencode($data[1])); 
     print "\n"; 
} 

最后,在动作脚本:

[[email protected] ~]$ ./rbds.php 
http://ws.audioscrobbler.com/2.0/?method=track.getinfo&track=My+first+song&artist=Crazy+Bad+Band%0A 
http://ws.audioscrobbler.com/2.0/?method=track.getinfo&track=Thriller&artist=Michael+Jackson%0A 
[[email protected] ~]$ 

如果你想使用这些网址的东西,你可以通过它们用$varname=sprintf(...)更换printf()行分配给一个变量。

+1

我应该学会不要浪费5分钟的时间做两班轮的答案。 ghoti

相关问题