用来获取豆瓣网上电影信息的简介

系统 1140 0
      <?
      
        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元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论