<? 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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
