用PHP实现一个MP3下载脚本
2010-09-24 13:59
357 查看
这只是一个下载MP3的PHP脚本,当然无法与一些下载软件相提并论。这脚本只是实现了MP3下载的功能,没有线程下载,也不支持断点下载。
这只是我为自己偷懒写的小工具,实现一些没有规则的下载地址,在目前我无法用下载软件工具实现下载的情况下,自己写了一个。
基本的实现原理:分析下载连接页面,抓取下载地址,用file_get_contents()函数下载文件到本址。
由于脚本跑的时间会较长,最好在命令行下跑,用页面跑会出现脚本执行时间太长中断的情况(也可以修改配置)。
下面是实现的脚本:
这只是我为自己偷懒写的小工具,实现一些没有规则的下载地址,在目前我无法用下载软件工具实现下载的情况下,自己写了一个。
基本的实现原理:分析下载连接页面,抓取下载地址,用file_get_contents()函数下载文件到本址。
由于脚本跑的时间会较长,最好在命令行下跑,用页面跑会出现脚本执行时间太长中断的情况(也可以修改配置)。
下面是实现的脚本:
<?php $listUrl = 'http://www.englishmorning.com/magic_english.php'; $listPage = file_get_contents($listUrl); $listPattern = '/<div id="primarycontent">.*<div class="footer">/is'; preg_match($listPattern, $listPage, $page); $listPage = $page[0]; unset($page); $listLinks = explode('<a href="', $listPage); unset($listLinks[0]); foreach($listLinks as $k => $link){ $link = substr($link, 0, strpos($link, '">')); $detalPage = file_get_contents($link); $pattern = '/<embed src=".*" mce_src=".*" width="380"/is'; preg_match($pattern, $detalPage, $urls); $url = str_replace('<embed src="', 'http://www.englishmorning.com/', $urls[0]); $url = str_replace('" mce_src="', 'http://www.englishmorning.com/', $urls[0]); $url = str_replace('" width="380"', '', $url); unset($urls); $listLinks[$k] = $url; } foreach($listLinks as $url){ getFile($url); echo "download {$url} done./n"; } function getFile($url){ $fileName = substr($url, strrpos($url, '/')+1); $fileSize = @filesize($url); header ( "Pragma: public" ); header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ); header ( "Cache-Control: private", false ); header ( "Content-Transfer-Encoding: binary" ); header ( "Content-Type:audio/mpeg MP3"); header ( "Content-Length: " . $fileSize); header ( "Content-Disposition: attachment; filename=".$fileName); $file = file_get_contents($url); $fp = fopen($fileName, 'w'); fwrite($fp, $file); fclose($fp); }
相关文章推荐
- G-Share 1.5beta3:一个php脚本的程序,可以把你gmail做为文档共享系统(下载系统)
- Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本
- 造福大众,分享一个mp3下载脚本 [转]
- 网站上有一个mp3文件,但是用<a href="my.mp3">下载</a>时,会在播放器里打开,请问我要怎样才能实现点击后下载呢?
- PHP脚本实现服务器文件下载
- php MP3文件下载功能的实现
- 一个php写的linux下lvm自动快照实现脚本
- 造福大众,分享一个mp3下载脚本
- 利用Python脚本实现-----登陆新浪微博&批量下载收藏内容
- 实现一个脚本引擎(燕良译)- -
- php实现把url转换迅雷thunder资源下载地址的方法
- 下载、分割文件的一个脚本,用于CMWAP下载大文件
- 用popen实现在PHP代码异步调用服务器端的shell脚本
- php实现文件的下载
- 又一个php 分页类实现代码
- php实现把url转换迅雷thunder资源下载地址的方法
- PHP扩展类ZipArchive实现压缩Zip文件和文件打包下载
- PHP实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定
- php实现的一个简单json rpc框架实例
- 一个修改注册表,使浏览器默认不直接打开已知后缀的下载文件,而是下载后确认,且单独打开的vbscript脚本