[PHP] コード
- //検索リンク
- function search_link($moviename)
- {
- //必要に応じて最大結果を変更できるURLを構築します
- $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->gt;{'entry'}){
- //リンクを検索し、配列で返します
- for($i = 0;$i $link=$entry[$i]->{'link'}; for( $j = 0;$j $arr = (array)$link[$j];
- $key = array_search("self",$arr);
- if ($ 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:評価'};
- $db_array = array();
-
- $db = $obj->gt;{'db :attribute'};
- //db:attribute の値を配列
- 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[ "タイトル"],$db_array["別名"],$db_array["ディレクター"],$db_array["ライター"],$db_array["ウェブサイト"] ,
- $db_array["imdb"],$db_array[" year"],$db_array["country"],$db_array["movie_type"],$db_array["pubdate"],
- $db_array["movie_duration"] ,$db_array["エピソード"],$db_array["言語 "],$db_array["キャスト"]);
- @$db_array = array_combine($db_array_key,$db_array_value);
- } else{
- echo "空のリンクです! ";
- }
- $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,"$vrn");
- fwrite($fi,"rn") ;
-
- fwrite($fi,"[プロデューサー]");
- foreach ($info["author"] as $value)
- foreach ($value as $key)
- foreach ($key as $v) {
- fwrite ($ fi,"$vrn");
- }
- fwrite($fi,"rn");
-
- //db:attribute
- foreach ($info["db_array"] as $key=>$value){
- if (count($value)){
- fwrite($fi,$key);
- if($value==$info["db_array"]['[actor]']){
- foreach($value as $ k= >$v)
- fwrite($fi,"$vrn ");
- } else{
- foreach($value as $k=>$v)
- fwrite($fi,"$v ");
- fwrite( $fi,"rn");
- }
- }
- }
- fwrite($fi,"rn");
-
- //動画紹介
- fwrite($fi, "[紹介]rn");
- foreach ( $info ["summary"] as $k=>$v){
- fwrite($fi," $v rn");
- }
- fwrite($fi,"rn")
-
- //ID
- fwrite ($ fi,"[ID]");
- foreach ($info["ID"] as $k=>$v){
- fwrite($fi,$v);
- }
- fwrite($fi," rn" );
-
- //Link
- fwrite($fi,"[Link]rn");
- foreach ($info["link"] as $value){
- foreach ($value as $k=>$ v) {
- fwrite($fi, " $v ");
- }
- fwrite($fi,"rn");
- }
- fwrite($fi,"rn")
-
- //コメント
- fwrite($ fi, '[コメント]');
- fwrite($fi,$info["gd"]["@numRaters"]);
- fwrite($fi,'[最高] ]' ); fwrite($fi,$info["gd"]["@max"]);
- fwrite($fi," [最小]");fwrite($fi,$info["gd"][ "@ min"]);
- fwrite($fi,' [Average]');fwrite($fi, $info["gd"]["@average"]);
- fwrite($fi,"rn") ;
- }
- //指定されたフォルダー内のムービーを検索し、ムービー名を返す
- 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+' )){ //指定されたファイルを開きます。存在しない場合はファイルを作成して return
- Closedir($fdir);
- return $fi;
- }else
- echo "ファイルを開くのに失敗しました!";
- //}
- }else
- echo "ディレクトリが存在しません!";
- }
- }
- } else {
- echo '開くのに失敗しました!';
- return;
- }
- } else {
- echo 'ディレクトリが存在しません!';
- 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,"<リソース>rn");
- fwrite($fi,'<メッセージ本文>');
- fwrite($fi,"rnrnrn".'************ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※
- $info=get_info($k); //リンク情報を取得
- write_info($fi,$info) //情報をtxtファイルに書き込む
- fwrite($fi,"********** * ************************************************* *************************************rn");
- }
- fclose($fi); //書き込み完了、ファイルを閉じます
- }
- } else
- echo "Empty!";
- }
- } else
- echo "Movies Not Exists!";
- ?>
-
コードをコピー
|
オンライン映画、php