LoginSignup
0

More than 5 years have passed since last update.

Shimple HTML DOM Parser でブログのjsonの情報から最初の記事のimgの srcを抜いてimagemagicで加工した

Last updated at Posted at 2015-03-18

はじめまして。さいきゆみと申します。いつも読まして頂いて感謝しています。
恥ずかしながら、ちょっと自分でもこれは便利かなというものができましたのでご紹介します。

Bloggerが配信するJSON 私のブログの例をPHPのShimole HTML DOM Parserimgを抜くのは、わりと簡単で、JSON の構造を、こういうところで分析し、

本文であれば、

php

$url="http://blog.kita-o.com/feeds/posts/default?alt=json";
$array =file_get_contents($url);
$obj = json_decode($array,true);  // trueを入れるのがミソです
print ($obj['feed']['entry'][0]['content']['$t']);

と書くと0番目の本文をprint させられます。
ちなみに…

php
$obj['feed']['entry'][0]['link'][4]['href']  ←リンク
$obj['feed']['entry'][0]['title']['$t']     ←タイトル

です。

例えばブログの最新の記事の写真を1枚だけ抜き出したいと思った場合、このデータを格納したものを findで imgを見つけます。

php

$html = $obj['feed']['entry'][0]['content']['$t'];
$html= str_get_html($html);
include('simple_html_dom.php');//domの読み込み
$img = $html->find( 'img', 0 ); 
print $img

これで抜けるのは、

html

<img src ="やたら長い.jpg" width="さまざま">

となってしまいますので、 src="ココ" が欲しい。と思うのですが、検索しても foreach 構文で抜きながら配列に入れるやり方ばかりが出てきて困ったのですが、

@$img = $html->find('img',0)->src;

と、なんのことはなかったです。ただ、これはエラーを叩くことがあるので、@をつけて制御します。

これを応用して、jQuery で画像を連番で出して並べ替え、加工してアニメにするなど様々なことができると思います。

ただ、imgLiquidはPHPで生成した画像ではうまく加工できないようです。
そこで、私が使っているhetemlサーバーでは imagemagic が使えるのでこれでやってみました。

PHP
@$img = $html->find( 'img', 0 )->src; 
$thumbnail = 'nowon.jpg';
$cmd = '/usr/bin/convert -thumbnail 220x220 '.$img.' '.$thumbnail;
system($cmd);
print "<img src=\"nowon.jpg\" />;

詳しくは私のブログもご参考にしてください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0