PHP教程之采集百度音樂程序_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:PHP教程之PHP連接ACCESS數(shù)據(jù)庫的類試過PHP連接ACCESS數(shù)據(jù)庫沒?這個用途不大,但有時候也用得著!我以前試圖將一個ASP程序改寫成PHP的,原程序的數(shù)據(jù)庫設計得比較完善,我打算開發(fā)時就用它的ACCESS數(shù)據(jù)庫 ,等程序完成后再轉換。這個程序改寫計劃最終擱淺了,但此過程中為了方便連接ACCESS數(shù)
采集百度MP3TOP100和TOP500 列表歌曲文件URL的小程序!
本程序將百度的新歌TOP100和熱歌TOP500列表里的音樂隨機采集一個mp3或wma文件URL與歌手、歌名一起組成二維數(shù)組,并序列化保存在db.txt里
開啟采集時要輸入密碼,防止惡作劇。密碼是fzz
*/
//session_save_path("tmp");
//密碼:fzz
session_start();
file="db.txt";
if(!isset(_SESSION["cai"])){
_SESSION["cai"]=0;
}
if(_SESSION["cai"]==0 or !isset(_POST["xuanze"])){
echo <<<eot
<center>
<title>『夜無眠音樂采集』</title>
<font color=green>『夜無眠音樂采集』</font><br><br>
你要更新哪部分?
<form method=post action=''>
<input type=radio value=100 name="xuanze" checked>TOP100
<input type=radio value=500 name="xuanze">TOP500<br>
是否觀看采集過程:<INPUT TYPE="checkbox" NAME="guankan" checked><br>
后臺密碼:<input type=password name="password"><br>
<input type=submit value=開始采集 checked>
</form>
<br><font color=red>程序開始采集后請勿隨意刷新頁面</font>
</center>
eot;
_SESSION["cai"]=1;
die();
}
_SESSION["cai"]=0;
if(_POST["password"]!="fzz"){//這里的fzz就是密碼,可以改。
die("<script>alert('沒有密碼還想進來搗亂?')</script>");
}
i=0;
if(_POST["xuanze"]==100){
ii=0;
urltop="http://list.mp3.baidu.com/list/newhits.html?id=1#top1";
top=100;
}
else{
ii=100;
urltop="http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2";
top=500;
}
db=unserialize(@file_get_contents(file));
input=file_get_contents(urltop);
preg_match_all("/(?:[0-9]{1,3}.</td>).*?</td>/isS",input,a);
while(i<top){
set_time_limit(30);
name=preg_match_all("/blank>(.+?)</",a[0][i],b);
music=b[1][0];
name=b[1][1];
if(isset(b[1][2])){
name.="/".b[1][2];
}
music=preg_replace("/<b.*?>/is","",music);
word=urlencode("{music}+{name}");
url_dqlb="http://mp3.baidu.com/m?f=ms&rn=&tn=baidump3&ct=134217728&word={word}&lm=-1";
db_dqlb=file_get_contents(url_dqlb);
preg_match("/http:.+?word=(?:wma|mp3).+?d{5}&lm=d{8}/i",db_dqlb,url_r);
url_last=str_replace(" ","%20",url_r[0]);
db_last=file_get_contents(url_last);
preg_match("/http:.+?.(wma|mp3)(?=")/i",db_last,url);
url=url[0];
db[ii+i]=array(name=>name,music=>music,url=>url);
i++;
if(_POST[guankan]=="on"){
echo <<<fzz
<div>
<span style="width:30px">i.</span><span>music-name</span>
</div>
<div>
<span style="width:30px"></span><span>url</span>
</div><br>
fzz;
flush();
}
}
dbstr=serialize(db);//序列化數(shù)組
file_put(file,dbstr);
function file_put (file,db){
fp=fopen(file,"w+");
fwrite(fp,db);
fclose(fp);
}
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert("本次采集任務完成,刷新當前頁面繼續(xù)!");
//-->
</SCRIPT>
開啟采集時要輸入密碼,防止惡作劇。密碼是fzz
*/
//session_save_path("tmp");
//密碼:fzz
session_start();
file="db.txt";
if(!isset(_SESSION["cai"])){
_SESSION["cai"]=0;
}
if(_SESSION["cai"]==0 or !isset(_POST["xuanze"])){
echo <<<eot
<center>
<title>『夜無眠音樂采集』</title>
<font color=green>『夜無眠音樂采集』</font><br><br>
你要更新哪部分?
<form method=post action=''>
<input type=radio value=100 name="xuanze" checked>TOP100
<input type=radio value=500 name="xuanze">TOP500<br>
是否觀看采集過程:<INPUT TYPE="checkbox" NAME="guankan" checked><br>
后臺密碼:<input type=password name="password"><br>
<input type=submit value=開始采集 checked>
</form>
<br><font color=red>程序開始采集后請勿隨意刷新頁面</font>
</center>
eot;
_SESSION["cai"]=1;
die();
}
_SESSION["cai"]=0;
if(_POST["password"]!="fzz"){//這里的fzz就是密碼,可以改。
die("<script>alert('沒有密碼還想進來搗亂?')</script>");
}
i=0;
if(_POST["xuanze"]==100){
ii=0;
urltop="http://list.mp3.baidu.com/list/newhits.html?id=1#top1";
top=100;
}
else{
ii=100;
urltop="http://list.mp3.baidu.com/topso/mp3topsong.html?id=1#top2";
top=500;
}
db=unserialize(@file_get_contents(file));
input=file_get_contents(urltop);
preg_match_all("/(?:[0-9]{1,3}.</td>).*?</td>/isS",input,a);
while(i<top){
set_time_limit(30);
name=preg_match_all("/blank>(.+?)</",a[0][i],b);
music=b[1][0];
name=b[1][1];
if(isset(b[1][2])){
name.="/".b[1][2];
}
music=preg_replace("/<b.*?>/is","",music);
word=urlencode("{music}+{name}");
url_dqlb="http://mp3.baidu.com/m?f=ms&rn=&tn=baidump3&ct=134217728&word={word}&lm=-1";
db_dqlb=file_get_contents(url_dqlb);
preg_match("/http:.+?word=(?:wma|mp3).+?d{5}&lm=d{8}/i",db_dqlb,url_r);
url_last=str_replace(" ","%20",url_r[0]);
db_last=file_get_contents(url_last);
preg_match("/http:.+?.(wma|mp3)(?=")/i",db_last,url);
url=url[0];
db[ii+i]=array(name=>name,music=>music,url=>url);
i++;
if(_POST[guankan]=="on"){
echo <<<fzz
<div>
<span style="width:30px">i.</span><span>music-name</span>
</div>
<div>
<span style="width:30px"></span><span>url</span>
</div><br>
fzz;
flush();
}
}
dbstr=serialize(db);//序列化數(shù)組
file_put(file,dbstr);
function file_put (file,db){
fp=fopen(file,"w+");
fwrite(fp,db);
fclose(fp);
}
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert("本次采集任務完成,刷新當前頁面繼續(xù)!");
//-->
</SCRIPT>
分享:如何用PHP獲取歌曲時間PHP代碼 ?php file =realpath(1.mp3); //當前目錄下1.mp3 if (!file_exists(file)) { exit('文件不存在'); } player = new COM(WMPlayer.OCX); media = player-newMedia(file); time=media-duration;//總的秒數(shù) h=floor(time /3600);//小時 m=floor((tim
相關PHP教程:
- 相關鏈接:
- 教程說明:
PHP教程-PHP教程之采集百度音樂程序。