php获取用户豆瓣电影,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 $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代码获取豆瓣网上电影信息的简介相关推荐
- 小程序获取用户头像大图 小程序获取用户头像模糊的问题 小程序自定义转发头像模糊 小程序自定义转发分享大图...
在开发小程序的时候,大家肯定有做过自定义转发分享图片的.我们现在做了一个名片小程序,需要做的一个功能就是,用户在转发分享自己的名片,在微信里显示的小程序缩略图,我们使用的是用户的微信头像,但是发现一个 ...
- vue/js如何精准获取用户当前地理位置,精准获取经纬度、精准地图选点,Android定位偏移问题解决
前言: 当时h5页面使用腾讯地图.百度地图.高德地图等获取用户当前地理位置坐标,均有偏移,偏移好几公里,无法获取精准经纬度.最后调用了微信jssdk的方法,才获取了精准的经纬度. 二.具体步骤 1.调 ...
- tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息
获取用户基本信息(UnionID机制) 获取用户基本信息(UnionID机制) 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯 ...
- html怎样获取用户手机号码,小程序如何获取用户手机号?
在小程序获客过程中,我们有非常多的应用场景希望获取当前访客的手机号,通过小程序提供的这一便利功能,可以大大增强我们的营销效果. 在小程序中,获取手机号有下面两种方式: 一.用户进入首页(或某一页面), ...
- 小程序获取用户所在城市完整代码
小程序目录结构 插入提示: 1. 申请开发者密钥(key): 申请密钥 2. 下载微信小程序JavaScriptSDK,下载地址 下载完成后放入utils文件夹下引用即可 3. 安 ...
- 小程序获取用户所在城市完整代码详解(附源码)
小程序目录结构 插入提示: 1. 申请开发者密钥(key): 申请密钥 2. 下载微信小程序JavaScriptSDK,下载地址 下载完成后放入utils文件夹下引用即可 3. 安 ...
- java 获取rss_如何使用java代码获取RSS中信息
展开全部 双击62616964757a686964616fe58685e5aeb931333337373537代码全选 ... ... ... ... ... ... ... ... ... ... ...
- 获取用户坐标的html,html5获取用户地理位置
可以通过H5的内置程序获得: if (navigator.geolocation) { var timeoutVal = 10 * 1000 * 1000; navigator.geolocation ...
- android开发获取权限,Android开发程序代码获取root权限
把apk放到/system/app文件夹下,作为系统项目,就可以保证项目有root的权http://限. root权限的app可以申请很多一般用户无法申请的权限. 可以查看哪些权限是需要root才能申 ...
最新文章
- iphone NSArray 数组越界
- DCASE三次挑战赛概览
- mysql 删除另一个表中的_mysql – 在一个查询SQL中删除两个表中的记录
- python读取文件内容操作_Python 3.6 读取并操作文件内容
- vue关闭当前页面 跳转_【必看】58道 Vue常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度...
- 关于物联网规则引擎技术,你想要知道的都在这儿!
- linux关闭rac某一节点,实现多次不完全恢复(RAC环境需要将另一节点关闭)
- Bootstrap插件之 下拉菜单 源码分析~~
- Flink Forward Asia 2019 - 总结和展望(附PPT下载链接)
- linux 内核源码牛人分析 链接分享
- html文件怎么传到服务器上,如何把html文件上传到云服务器
- echarts柱状图参数详解
- 最全Pycharm教程(40)——Pycharm扩展功能之捆绑插件TextMate
- python命名规则数字开头的成语_浅谈Python中带_的变量或函数命名
- 笔记本计算机屏幕亮度暗,笔记本屏幕暗,详细教您怎么解决
- 水安ABC考试多选练习题库
- Flask+Vue搭建系统
- Authorware自制拼图游戏
- 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式
- 哈工大软件构造Lab1实验报告
热门文章
- Java数组数据类型
- 操作系统上机随笔《实验三》
- 男人四十一枝花,我花开后百花杀!Orz..繁忙的工作之余,joke一下~~
- ​想知道与你最般配的伴侣长什么样?这个“夫妻相”生成器要火(附链接)...
- SpringBoot设置全局上传文件路径并上传文件
- c语言 pow和sqrt注意
- Mysql中Page(页)和结构的认识
- ICMP有哪些消息类型?常见的ICMP报文有哪些?
- 路由之间通过静态通信(+回环)
- 密码学_SM4国密算法