php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介
[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!";
}
} else
echo "Movies Not Exists!";
?>
相关标签:php
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介相关推荐
- tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息
获取用户基本信息(UnionID机制) 获取用户基本信息(UnionID机制) 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯 ...
- html怎样获取用户手机号码,小程序如何获取用户手机号?
在小程序获客过程中,我们有非常多的应用场景希望获取当前访客的手机号,通过小程序提供的这一便利功能,可以大大增强我们的营销效果. 在小程序中,获取手机号有下面两种方式: 一.用户进入首页(或某一页面), ...
- 小程序获取用户头像大图 小程序获取用户头像模糊的问题 小程序自定义转发头像模糊 小程序自定义转发分享大图...
在开发小程序的时候,大家肯定有做过自定义转发分享图片的.我们现在做了一个名片小程序,需要做的一个功能就是,用户在转发分享自己的名片,在微信里显示的小程序缩略图,我们使用的是用户的微信头像,但是发现一个 ...
- vue/js如何精准获取用户当前地理位置,精准获取经纬度、精准地图选点,Android定位偏移问题解决
前言: 当时h5页面使用腾讯地图.百度地图.高德地图等获取用户当前地理位置坐标,均有偏移,偏移好几公里,无法获取精准经纬度.最后调用了微信jssdk的方法,才获取了精准的经纬度. 二.具体步骤 1.调 ...
- 获取用户坐标的html,html5获取用户地理位置
可以通过H5的内置程序获得: if (navigator.geolocation) { var timeoutVal = 10 * 1000 * 1000; navigator.geolocation ...
- 唯一标识 微信小程序_微信小程序获取用户唯一标识(不用授权)
在做微信小程序开发时,根据应用的需要,可能会要求获得用户不同的信息和硬件设备不同的使用权限.前者比如:用户标识.头像.昵称.姓别.地址.手机号码等,后者包括:地理位置.手机相册.摄像头等.根据小程序现 ...
- python输入end退出循环_4.学习python获取用户输入和while循环及if判断语句
0x00 Abstract 在开发中为了增加程序与用户的互动性需要增加获取用户输入的功能,在python中可以使用input()函数来获取用户的输入.当获取用户的各种输入后,我们需要使用逻辑语句来对数 ...
- vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...
微信小程序--常用功能2:申请用户授权并获取用户基本信息 为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面.给用户划分地域.给用户分类等功能. 但是要想获取用户信息 ...
- 微信h5获取用户地址信息
微信h5页面获取用户地址信息(vue+Java)(清风竹语) 前言: 与之前获取用户信息相同,这次获取用户地址信息也是在用户进入该页面之后,通过取得用户经纬度,在调用高德地图的api获得位置信息. 流 ...
- 微信开发 - 获取用户地理位置定位
在项目的逻辑业务当中,有时候需要获取用户当前所在的地理位置.那么,我们怎么去获取用户的地理位置定位呢? 可以采用百度地图接口获取用户的地理位置定位.要使用该服务,你得先注册成为百度地图开发者.http ...
最新文章
- Python-Django配置阿里大于的短信验证码接口
- FPGA之道(40)HDL的语法结构
- boost::leaf::try_handle_some用法的测试程序
- 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象其它方法?...
- 工业交换机的单模和多模能否互相替代?
- php mssql扩展SQL查询中文字段名解决方法
- 字符串去空格符(c++)
- grafana将自己的数据库(hbase)设置为数据源
- poj 3190(贪心)
- java中如何访问类中的字段_java – 在子类中使用super关键字访问超类私有字段
- 制作 Pidgin QQ 表情包
- 教师评语计算机实验报告作业,作业实验报告评语大全
- 公安大数据应用之情报分析与关联挖掘
- 微信浏览器、手机版浏览器、pc版浏览器网站的缓存怎么清理? 比较好的三点解决方案
- Oracle入门学习笔记及练习
- ajax添加header
- 阿里短信服务 JAVA
- 【笔记】案例研究(红酒和白酒)
- 小白入门IT行业,该从哪儿下手?
- 邓宁—克鲁格心理效应(达克效应)【转】