我正在尝试创建一个代码来下载嵌入在页面中的mp3文件。它最初是一个提交表单。您输入URL并提交它,并将该页面的HTML源写入文本文件。我还设置脚本来搜索源以查看是否嵌入了音频文件。我想我应该包括它不是filename.mp3的格式。格式为:
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 :(得分:0)
您可以尝试使用preg_match(http://php.net/manual/en/function.preg-match.php)获取“audio_file =”和“&”之间的内容。
或者您也可以在函数之间使用字符串来获取这两个字符串之间的内容: http://www.php.net/manual/en/function.substr.php#89493
答案 1 :(得分:0)
如果您的程序只是用于提取嵌入在网页中的MP3文件的解析器,您甚至不需要将网页内容保存到文件中,您可以在服务器的内存中使用页面源。
如果您想要检测闪烁内部MP3的路径,只要您知道它与正则表达式的匹配程度,就可以完成。
如果你对rgular表达式了解不多,你应该看看它们。
如果你不想要像正则表达式那样给你的力量,你总能按位置找到字符串,例如:
$pos = strpos($haystack, $needle);
注意:strpos()会找到第一个(strrpos将找到最后一个)字符串的出现。因此,您需要尽可能明确地制作它,否则您最终可能会捕获不需要的东西。
查看http://www.regular-expressions.info/quickstart.html或类似内容。
我无法发布更多链接,因为我还没有足够的声誉