BLOGGER phpでページ内容取り出し
BLOGGER phpでページ内容取り出し

BLOGGER phpでページ内容取り出し

ヘアケア通販のページと美容室のページの更新案内をブログ形式に改めました。

当店の peaks.jp のサブドメインを使わず

http://peaksclub.blogspot.com/
ピークスクラブ 更新情報


http://atelierhairpeaks.blogspot.com/
アトリエヘアピークス 更新情報


と、BLOGGERで用意されているblogspotのサブドメインを使いました。
SEO的にも外部リンクの方がいいのかな?という姑息な手段です・・・
これらのページから左画像のような最新の更新案内をphpでの取り出し方です。


 

<?php
$c=1;
$context = stream_context_create(array('http' => array(
'method' => 'GET',
'header' => 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
)));
$url = "http://peaksclub.blogspot.com/";#取り出すBLOG
#$data = file_get_contents($url, false, $context); #ブラウザの指定などする場合はこんな感じ
$data = file_get_contents($url);

preg_match_all("/(<([h2|p]+)[^>]*>)(.*)(<\/\\2>)/", $data, $matches);#該当タグだけ取り出し
for ($i=0; $i< count($matches[0]); $i++) {
if($c>6){break;}#5件だけ取り出し
if(strstr ($matches[0][$i], 'date-header')){list($year, $month, $day) = split("/", $matches[3][$i]);$Date = sprintf("%04d年%02d月%02d日", $year, $month, $day);echo "<dt>" . $Date . "</dt>\n";}#class属性のdate-headerを取り出し日付の書式変更
if(strstr ($matches[0][$i], '<p>')){ echo "<dd>" . $matches[3][$i] . " </dd>\n";$c++;}
}#本文取り出し
?>

上のスクリプトはプログのページソースを見て取り出したいタグ内で括られていることが大事で改行されていると取り出せない単純な使用で
ウイジットテンプレートの<data:post.body/>が下記のように<p>で括る必要があり
<p><data:post.body/></p>。

又、日付の書式がyyyy/mm/ddのようにスラッシユできられている場合に書式も変更されて修正無く使えます。(スクリプトはutf8で製作)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください