2010-10-30 76 views
1

我试图创建一个代码来下载嵌入在页面中的mp3文件。它以提交表单开始。您输入URL并提交,然后将该页面的HTML源代码写入文本文件。我还设置了脚本来搜索源代码以查看是否嵌入了音频文件。我想我应该包括它不是在filename.mp3的格式。格式为:使用PHP搜索文本文件

embed type="application/x-shockwave-flash" src="http://diaryofthedead.tumblr.com/swf/audio_player_black.swf?audio_file=http://www.tumblr.com/audio_file/1435664895/tumblr_lb2ybulZkt1qb5hrc&color=FFFFFF" height="27" width="207" quality="best"

所以这里的东西,但只是你要添加到文件的末尾,它重定向到MP3文件的某些字符串。我知道字符串。我想要做的是提取,例如“http://www.tumblr.com/audio_file/1435664895/tumblr_lb3ybulZkt1q5hrc”从这个中间。我知道如何从文件中读取,但我不知道如何从它中提取某些部分而不知道确切的文件名。那么有什么办法可以让它搜索“audio_file”的源代码,如果它找到了字符串,请提取音频文件?

回答

0

如果你的程序只是用于提取嵌入在网页中,你甚至不需要到MP3文件的解析器将网页的内容保存到文件中,您可以在服务器的内存中使用网页源代码。

如果你想检测MP3里面闪存的路径,只要你知道它是如何匹配一个正则表达式,就完成了。

如果您对rgular表达式了解不多,则应该看看它们。

如果你不希望尽可能多的功率为正则表达式就可以给你,你总是可以找到位置的字符串,如:

$pos = strpos($haystack, $needle); 

请注意:strpos()将找到的第一个(strrpos会找到最后一个)字符串的出现。所以你需要尽可能明确地做到这一点,否则你最终可能会捕获不需要的东西。

看看http://www.regular-expressions.info/quickstart.html或类似的东西。

我无法发布更多的链接,因为我没有足够的声望呢

0

您可以尝试使用preg_match(http://php.net/manual/en/function.preg-match.php)获取“audio_file =”和“&”之间的内容。

或者你也可以使用功能之间的字符串来获得这两个字符串之间的内容: http://www.php.net/manual/en/function.substr.php#89493