<?
php
//
搜索鏈接
function
search_link(
$moviename
)
{
//
構造url,其中max-results可根據需要更改
$urlString
= 'http://api.douban.com/movie/subjects?q='.
$moviename
.'&start-index=1&max-results=1&alt=json'
;
//
print_r($urlString);
$urlString
=mb_convert_encoding(
$urlString
, "UTF-8", "GBK");
//
將Url轉換為utf-8編碼
$r
=
new
HttpRequest(
$urlString
,HttpRequest::METH_GET);
//
請求
$response
=
$r
->
send();
$result
=
$r
->
getResponseBody();
$obj
= json_decode(
$result
);
//
解析成json格式
if
(
$entry
= @
$obj
->{'entry'
}){
//
搜索鏈接并存在數組中返回
for
(
$i
= 0;
$i
<
sizeof
(
$entry
);
$i
++
){
$link
=
$entry
[
$i
]->{'link'
};
for
(
$j
= 0;
$j
<
sizeof
(
$link
);
$j
++
){
$arr
= (
array
)
$link
[
$j
];
$key
=
array_search
("self",
$arr
);
if
(
$key
){
//
判斷key是否存在
$str
=
$arr
["@href"].'?alt=json';
//
構造返回鏈接的格式
break
;
}
}
$link_array
[] =
$str
;
}
return
$link_array
;
//
返回鏈接
}
else
echo
"Not Found!"
;
}
//
查詢鏈接并將各變量放入$GLOBAL 數組
function
get_info(
$urlString
)
{
$r
=
new
HttpRequest(
$urlString
,HttpRequest::
METH_GET);
$response
=
$r
->
send();
$result
=
$r
->
getResponseBody();
//
if..else.. 判斷打開鏈接是否為空
if
(
$obj
= json_decode(
$result
)){
//
將影片的信息放在全局數組中
$title
=
$obj
->{'title'
};
$author
=
$obj
->{'author'
};
$summary
=
$obj
->{'summary'
};
$ID
=
$obj
->{'id'
};
$link
=
$obj
->{'link'
};
$gd
= (
array
)
$obj
->{'gd:rating'
};
$db_array
=
array
();
$db
=
$obj
->{'db:attribute'
};
//
將db:atribute中的值放進數組
foreach
(
$db
as
$value
){
$value_array
= (
array
)(
$value
);
$v
=
$value_array
["@name"
];
$k
=
$value_array
["\$t"
];
if
(
array_key_exists
("@lang",
$value_array
)){
$lang
=
$value_array
["@lang"
];
$k
=
$k
.'['.
$lang
.']'
;
}
$db_array
[
$v
][]=
$k
;
}
//
設定對應數組的鍵值
@
$db_array_key
=
array
('【影片原名】','【別 名】','【導 演】','【編 劇】','【官方網站】','【IMDB鏈接】','【出品年代】',
'【國 家】','【電影類型】','【上映日期】','【放映長度】','【集 數】','【語 言】','【演 員】'
);
@
$db_array_value
=
array
(
$db_array
["title"],
$db_array
["aka"],
$db_array
["director"],
$db_array
["writer"],
$db_array
["website"],
$db_array
["imdb"],
$db_array
["year"],
$db_array
["country"],
$db_array
["movie_type"],
$db_array
["pubdate"],
$db_array
["movie_duration"],
$db_array
["episodes"],
$db_array
["language"],
$db_array
["cast"
]);
@
$db_array
=
array_combine
(
$db_array_key
,
$db_array_value
);
}
else
{
echo
"Empty link!"
;
}
$info
=
array
("title"=>
$title
,"author"=>
$author
,"summary"=>
$summary
,"ID"=>
$ID
,"link"=>
$link
,"gd"=>
$gd
,"db_array"=>
$db_array
);
return
$info
;
}
//
將影片信息寫入文件
function
write_info(
$fi
,
$info
)
{
//
fwrite($fi, "******");寫入文件
fwrite
(
$fi
, "【影片原名】"
);
foreach
(
$info
["title"]
as
$k
=>
$v
)
fwrite
(
$fi
,"
$v
\r\n"
);
fwrite
(
$fi
,"\r\n"
);
fwrite
(
$fi
,"【出 品 人】"
);
foreach
(
$info
["author"]
as
$value
)
foreach
(
$value
as
$key
)
foreach
(
$key
as
$v
) {
fwrite
(
$fi
,"
$v
\r\n"
);
}
fwrite
(
$fi
,"\r\n"
);
//
db:attribute
foreach
(
$info
["db_array"]
as
$key
=>
$value
){
if
(
count
(
$value
)){
fwrite
(
$fi
,
$key
);
if
(
$value
==
$info
["db_array"]['【演 員】'
]){
foreach
(
$value
as
$k
=>
$v
)
fwrite
(
$fi
,"
$v
\r\n "
);
}
else
{
foreach
(
$value
as
$k
=>
$v
)
fwrite
(
$fi
,"
$v
"
);
fwrite
(
$fi
,"\r\n"
);
}
}
}
fwrite
(
$fi
,"\r\n"
);
//
影片簡介
fwrite
(
$fi
, "【簡 介】\r\n"
);
foreach
(
$info
["summary"]
as
$k
=>
$v
){
fwrite
(
$fi
,"
$v
\r\n"
);
}
fwrite
(
$fi
,"\r\n"
);
//
ID
fwrite
(
$fi
,"【I D】"
);
foreach
(
$info
["ID"]
as
$k
=>
$v
){
fwrite
(
$fi
,
$v
);
}
fwrite
(
$fi
,"\r\n"
);
//
鏈接
fwrite
(
$fi
,"【鏈 接】\r\n"
);
foreach
(
$info
["link"]
as
$value
){
foreach
(
$value
as
$k
=>
$v
){
fwrite
(
$fi
, "
$v
"
);
}
fwrite
(
$fi
,"\r\n"
);
}
fwrite
(
$fi
,"\r\n"
);
//
評論
fwrite
(
$fi
,'【評 論】'
);
fwrite
(
$fi
,
$info
["gd"]["@numRaters"
]);
fwrite
(
$fi
,"\r\n"
);
fwrite
(
$fi
,'【最高】');
fwrite
(
$fi
,
$info
["gd"]["@max"
]);
fwrite
(
$fi
," 【最低】");
fwrite
(
$fi
,
$info
["gd"]["@min"
]);
fwrite
(
$fi
,' 【平均】');
fwrite
(
$fi
,
$info
["gd"]["@average"
]);
fwrite
(
$fi
,"\r\n"
);
}
//
在指定的文件夾中尋找電影并返回電影名
function
find_dir(
$dir
)
{
if
(
is_dir
(
$dir
)){
//
判斷所給路徑名是否為目錄
if
(
$fdir
=
opendir
(
$dir
)){
//
打開目錄
while
(
false
!==(
$file
=
readdir
(
$fdir
))){
//
遍歷目錄中的文件
if
(
$file
!= "." &&
$file
!= ".."
)
$files
[]=
$file
;
//
將尋找到的文件放入數組并返回
}
closedir
(
$fdir
);
print_r
(
$file
);
return
$files
;
}
}
}
//
將生成的txt文件放在指定的目錄下
function
write_to_dir(
$dir
,
$moviename
)
{
if
(
is_dir
(
$dir
)){
//
判斷所給路徑名是否為目錄
if
(
$fdir
=
opendir
(
$dir
)){
//
打開目錄
while
(
false
!==(
$file
=
readdir
(
$fdir
))){
//
遍歷目錄中的文件
if
(
$file
!= '.' &&
$file
!= '..'
) {
$dirname
=
$dir
.'\\'.
$file
;
if
(
is_dir
(
$dirname
)&&
$file
==
$moviename
) {
//
尋找指定的文件夾
$filename
=
$dirname
.'\\'.
$moviename
.'.txt'
;
//
if(!file_exists($filename)){
if
(
$fi
=
fopen
(
$filename
,'w+')){
//
打開指定文件,若不存在,建立文件并返回
closedir
(
$fdir
);
return
$fi
;
}
else
echo
"Fail to Open file!"
;
//
}
}
else
echo
"Dir Not Exists!"
;
}
}
}
else
{
echo
'Fail to Open!'
;
return
;
}
}
else
{
echo
'Directory Not Exists!'
;
return
;
}
}
$dir
= 'E:\film'
;
if
(
$movienames
= @find_dir(
$dir
)){
//
在指定目錄中獲得電影名,進行搜索
foreach
(
$movienames
as
$key
=>
$moviename
){
if
(
$link_info
= search_link(
$moviename
)){
//
搜索影片名
if
(
$fi
=write_to_dir(
$dir
,
$moviename
)){
//
寫入指定文件夾
fwrite
(
$fi
,"<Resources>\r\n"
);
fwrite
(
$fi
,'<MesageBody>'
);
fwrite
(
$fi
,"\r\n\r\n\r\n".'※※※※※※※※※※※※※※※※※※※※※ 影片信息 ※※※※※※※※※※※※※※※※※※※※※'."\r\n"
);
foreach
(
$link_info
as
$k
){
$info
=get_info(
$k
);
//
獲取鏈接信息
write_info(
$fi
,
$info
);
//
在txt文件中寫入信息
fwrite
(
$fi
,"*************************************************************************************************\r\n"
);
}
fclose
(
$fi
);
//
寫入完成,關閉文件
}
}
else
echo
"Empty!"
;
}
}
else
echo
"Movies Not Exists!"
;
?>
Fatal error: Class ‘HttpRequest’ not found
有一行代碼:
$httpRequest = new HttpRequest($oauthRequest->http_url(), HttpRequest::METH_GET);
沒有 HttpRequest 這個類,是 php擴展問題
wamp>php設置》php擴展》添加擴展 輸入php_http.dll回車
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

