先日から書いております【ブログ自動更新】の続きです。
www.btoinov.com
www.btoinov.com
色々と調べながらプログラミングの記述をしてなんとか毎日稼働させている状況のものになります。
完全素人なので無駄、ムラが多数あると思いますがご容赦下さい。
これはDMMアフィリエイトの自動更新ができるように組んだものになります。ワードプレスになります。
ほぼ売れないので大きな期待はできないです。去年実績で2万弱でした(運用サイトが2サイト)
www.btoinov.com
ほぼ1年くらい前に処理したものを他サイトで処理しようと思ってついでに備忘録としてブログに上げてみました。
<?php date_default_timezone_set('Asia/Tokyo'); $api_key= "**********"; //DMMアフィリエイトのAPIキーを入力 $aff_id='********'; //任意のアフィリエイトIDを入力 990~999までで $hits= 10;//検索数 最大100まで $keyword="****";//任意のキーワード $service = "digital";//検索対象サービスを指定します $floor = "videoa";//検索対象フロアを指定します try{ $pdo = new PDO('mysql:host=localhost;dbname=******;charset=utf8','******', '******'); //データベース名、ユーザー名、パスを入力 $pdo ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $xml = "https://api.dmm.com/affiliate/v3/ItemList?api_id=$api_key&affiliate_id=$aff_id&site=FANZA&service=$service&floor=$floor&hits=$hits&sort=date&keyword=$keyword&output=xml"; $xml = simplexml_load_file($xml, 'SimpleXMLElement', LIBXML_NOCDATA); //var_dump($xml); for($i=0; $i<="$hits"-1; $i++){ $item = $xml->result->items->item; $title[$i] = $item[$i] ->title; $gazo[$i] = $item[$i] ->imageURL->large; $affi_link[$i] = $item[$i] ->affiliateURL; $information[$i] = $item[$i] ->iteminfo->maker->item->name; $content_id[$i] = $item[$i] ->content_id; if($title[$i] == "") {break;} $dmm = "<div> <a href=$affi_link[$i]><img src =$gazo[$i]></a><BR> ◆タイトル:<a target='_blank' href='$affi_link[$i]'>$title[$i]</a><BR> ◆メーカー:$information[$i]<BR> </div>"; $thumnail[$i] =file_get_contents($gazo[$i]); $filename[$i] = basename($gazo[$i]); $data[$i] = '/home/*****/public_html/*****.com/wp-content/uploads/thumbnail/'; //サーバー名、ドメイン名を入力。以下同様。 file_put_contents($data[$i].$filename[$i], $thumnail[$i]); $sql0 = $pdo->prepare('insert ignore into ****_posts(post_author,post_date,post_date_gmt,post_content,post_title,post_name,movie_id)values(:post_author,:post_date,:post_date_gmt,:post_content,:post_title,:post_name,:movie_id)'); //****はPHPAdminより確認して入力します。以下同様。 $sql1 = $pdo->prepare('insert ignore into ****_posts(post_author,post_status,post_parent,guid,post_type,post_mime_type)values(:post_author,:post_status,:post_parent,:guid,:post_type,:post_mime_type)'); $sql2 = $pdo->prepare('insert ignore into ****_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql3 = $pdo->prepare('insert ignore into ****_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql4 = $pdo->prepare('insert ignore into ****_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql5 = $pdo->prepare('insert ignore into ****_postmeta(post_id,meta_key,meta_value)values(:post_id,:meta_key,:meta_value)'); $sql6 = $pdo->prepare('insert ignore into ****_term_relationships(object_id,term_taxonomy_id)values(:object_id,:term_taxonomy_id)'); $sql0->bindValue(':post_author',1,PDO::PARAM_STR); $sql0->bindValue(':post_date',date("Y/m/d H:i:s"),PDO::PARAM_STR); $sql0->bindValue(':post_date_gmt',date("Y/m/d H:i:s"),PDO::PARAM_STR); $sql0->bindValue(':post_content',"<div> <a href=$affi_link[$i]><img src =$gazo[$i]></a><BR> ◆タイトル:<a target='_blank' href='$affi_link[$i]'>$title[$i]</a><BR> ◆メーカー:$information[$i]<BR> [st-mybutton url='$affi_link[$i]' title='この動画の詳しい情報はコチラ!' rel='' fontawesome=' ' target='_blank' color='#fff' bgcolor='#e53935' bgcolor_top='#f44336' bordercolor='#e57373' borderwidth='1' borderradius='5' fontsize='' fontweight='bold' width='' fontawesome_after='fa-angle-right' shadow='#c62828' ref='on' beacon=''] //有料テーマ「Affinger」を使用しているものになります。もし表示されない場合は削除でたいおう。 Powered by <a href='https://affiliate.dmm.com/api/'>FANZA Webサービス</a><BR> </div>",PDO::PARAM_STR); $sql0->bindValue(':post_title',$title[$i],PDO::PARAM_STR); $sql0->bindValue(':post_name',$content_id[$i],PDO::PARAM_STR); $sql0->bindValue(':movie_id',$content_id[$i],PDO::PARAM_STR); $sql0 -> execute(); $post_id_1[$i] = $pdo->lastInsertId(); $sql1->bindValue(':post_author',1,PDO::PARAM_STR); $sql1 ->bindValue(':post_status','inherit'); $sql1->bindValue(':post_parent',$post_id_1[$i],PDO::PARAM_STR); $sql1->bindValue(':guid',"*****.com/wp-content/uploads/thumbnail/$filename[$i]",PDO::PARAM_STR); //あなたのドメイン名 $sql1->bindValue(':post_type','attachment',PDO::PARAM_STR); $sql1->bindValue(':post_mime_type','image/jpeg',PDO::PARAM_STR); $sql1-> execute(); $media_id[$i] = $pdo->lastInsertId(); $sql2 ->bindValue(':post_id',$media_id[$i],PDO::PARAM_STR); $sql2 ->bindValue(':meta_key',"_wp_attached_file",PDO::PARAM_STR); $sql2 ->bindValue(':meta_value',"*****.com/wp-content/uploads/thumbnail/$filename[$i]",PDO::PARAM_STR); //あなたのドメイン名 $sql2 -> execute(); $size = getimagesize($data[$i].$filename[$i]); $image_mata = array( 'width' => $size[0], 'height' => $size[1], 'file' => "****.com/wp-content/uploads/thumbnail/$filename[$i]",//あなたのドメイン名 'sizes' => array( 'wellington-thumbnail-small' => array( 'file' => '', 'width' => 0, 'height' => 0, 'mime-type' => 'image/jpeg', ), 'wellington-thumbnail-medium' => array( 'file' => '', 'width' => 0, 'height' => 0, 'mime-type' => 'image/jpeg', ), ), 'image_meta' => array( 'aperture' => '0', 'credit' => '', 'camera' => '', 'caption' => '', 'created_timestamp' => '0', 'copyright' => '', 'focal_length' => '0', 'iso' => '0', 'shutter_speed' => '0', 'title' => '', 'orientation' => '0', 'keywords' => array( ), ), ); $sql3->bindValue(':post_id', $media_id[$i] ); $sql3->bindValue(':meta_key', "_wp_attachment_metadata" ); $sql3->bindValue(':meta_value', serialize($image_mata) ); $sql3->execute(); $sql4 ->bindValue(':post_id',$post_id_1[$i],PDO::PARAM_STR); $sql4->bindValue(':meta_key',"_thumbnail_id",PDO::PARAM_STR); $sql4 ->bindValue(':meta_value',$media_id[$i],PDO::PARAM_STR); $sql4 -> execute(); $sql5 ->bindValue(':post_id',$post_id_1[$i],PDO::PARAM_STR); $sql5 ->bindValue(':meta_key',"_wp_page_template",PDO::PARAM_STR); $sql5 ->bindValue(':meta_value',"default",PDO::PARAM_STR); $sql5 -> execute(); $sql6 ->bindValue(':object_id',$post_id_1[$i],PDO::PARAM_STR); $sql6 ->bindValue(':term_taxonomy_id',**,PDO::PARAM_STR);//カテゴリ表示になります。**はカテゴリのIDを入力 $sql6 -> execute(); echo $dmm; } }catch(PDOException $e){ echo 'エラー発生しています:' . $e ->getMessage();
一度、メモ帳などのテキストファイルに貼り付けをして「名前をつけて保存」で拡張子(.txt→.php)に変更して保存して下さい。
処理の補足は別記事で書きます。