//搜索链接

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 $link=$entry[$i]->{'link'};

for($j = 0;$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," \r\n");

fwrite($fi,' ');

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!";

php获取用户豆瓣电影,php代码获取豆瓣网上电影信息的简介相关推荐

  1. 小程序获取用户头像大图 小程序获取用户头像模糊的问题 小程序自定义转发头像模糊 小程序自定义转发分享大图...

    在开发小程序的时候,大家肯定有做过自定义转发分享图片的.我们现在做了一个名片小程序,需要做的一个功能就是,用户在转发分享自己的名片,在微信里显示的小程序缩略图,我们使用的是用户的微信头像,但是发现一个 ...

  2. vue/js如何精准获取用户当前地理位置,精准获取经纬度、精准地图选点,Android定位偏移问题解决

    前言: 当时h5页面使用腾讯地图.百度地图.高德地图等获取用户当前地理位置坐标,均有偏移,偏移好几公里,无法获取精准经纬度.最后调用了微信jssdk的方法,才获取了精准的经纬度. 二.具体步骤 1.调 ...

  3. tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息

    获取用户基本信息(UnionID机制) 获取用户基本信息(UnionID机制) 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯 ...

  4. html怎样获取用户手机号码,小程序如何获取用户手机号?

    在小程序获客过程中,我们有非常多的应用场景希望获取当前访客的手机号,通过小程序提供的这一便利功能,可以大大增强我们的营销效果. 在小程序中,获取手机号有下面两种方式: 一.用户进入首页(或某一页面), ...

  5. 小程序获取用户所在城市完整代码

    小程序目录结构 插入提示: 1. 申请开发者密钥(key): 申请密钥 2. 下载微信小程序JavaScriptSDK,下载地址           下载完成后放入utils文件夹下引用即可 3. 安 ...

  6. 小程序获取用户所在城市完整代码详解(附源码)

    小程序目录结构 插入提示: 1. 申请开发者密钥(key): 申请密钥 2. 下载微信小程序JavaScriptSDK,下载地址           下载完成后放入utils文件夹下引用即可 3. 安 ...

  7. java 获取rss_如何使用java代码获取RSS中信息

    展开全部 双击62616964757a686964616fe58685e5aeb931333337373537代码全选 ... ... ... ... ... ... ... ... ... ... ...

  8. 获取用户坐标的html,html5获取用户地理位置

    可以通过H5的内置程序获得: if (navigator.geolocation) { var timeoutVal = 10 * 1000 * 1000; navigator.geolocation ...

  9. android开发获取权限,Android开发程序代码获取root权限

    把apk放到/system/app文件夹下,作为系统项目,就可以保证项目有root的权http://限. root权限的app可以申请很多一般用户无法申请的权限. 可以查看哪些权限是需要root才能申 ...

最新文章

  1. iphone NSArray 数组越界
  2. DCASE三次挑战赛概览
  3. mysql 删除另一个表中的_mysql – 在一个查询SQL中删除两个表中的记录
  4. python读取文件内容操作_Python 3.6 读取并操作文件内容
  5. vue关闭当前页面 跳转_【必看】58道 Vue常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度...
  6. 关于物联网规则引擎技术,你想要知道的都在这儿!
  7. linux关闭rac某一节点,实现多次不完全恢复(RAC环境需要将另一节点关闭)
  8. Bootstrap插件之 下拉菜单 源码分析~~
  9. Flink Forward Asia 2019 - 总结和展望(附PPT下载链接)
  10. linux 内核源码牛人分析 链接分享
  11. html文件怎么传到服务器上,如何把html文件上传到云服务器
  12. echarts柱状图参数详解
  13. 最全Pycharm教程(40)——Pycharm扩展功能之捆绑插件TextMate
  14. python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名
  15. 笔记本计算机屏幕亮度暗,笔记本屏幕暗,详细教您怎么解决
  16. 水安ABC考试多选练习题库
  17. Flask+Vue搭建系统
  18. Authorware自制拼图游戏
  19. 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式
  20. 哈工大软件构造Lab1实验报告

热门文章

  1. Java数组数据类型
  2. 操作系统上机随笔《实验三》
  3. 男人四十一枝花,我花开后百花杀!Orz..繁忙的工作之余,joke一下~~
  4. ​想知道与你最般配的伴侣长什么样?这个“夫妻相”生成器要火(附链接)...
  5. SpringBoot设置全局上传文件路径并上传文件
  6. c语言 pow和sqrt注意
  7. Mysql中Page(页)和结构的认识
  8. ICMP有哪些消息类型?常见的ICMP报文有哪些?
  9. 路由之间通过静态通信(+回环)
  10. 密码学_SM4国密算法