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

4

4 回答 4

1

使用explode.

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

以上唯一的问题是,如果标题包含双空格,则可能会遇到问题。

于 2012-06-05T04:21:36.537 回答
1

如果我理解你,你想要这样的东西:

list($title, $track) = explode('  ', trim(file_get_contents('RBDS%20Text.txt')), 2);
于 2012-06-05T04:22:00.203 回答
1
<?php
// build $url here
$result = file_get_contents($url);
list($title, $artist) = explode("  ", $result);

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

于 2012-06-05T04:22:23.783 回答
0

首先,我们的数据...

[ghoti@pc ~]$ cat RBDS_Text.txt 
My first song  Crazy Bad Band
Thriller  Michael Jackson

接下来,一个 PHP 脚本:

[ghoti@pc ~]$ 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";
}

最后,运行中的脚本:

[ghoti@pc ~]$ ./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
[ghoti@pc ~]$ 

如果您想将这些 URL 用于某事,您可以通过将printf()行替换为$varname=sprintf(...).

于 2012-06-05T04:30:00.893 回答