2010-10-30 75 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