【92日目】関連記事をおしゃれに表示させたい!-6
Posted: Last Update:
「関連記事の投稿をおしゃれに表示したい」という課題に取り掛かって6日目。昨日からPHPで関連記事を呼び出して内容を入れ込もうと頑張っていますが、うまくいきません。今日こそ糸口を見つけたいです!
昨日までの成果と今日やりたいこと
まず、関連リンクを入れる箱はスクリーンショットのように完成しています。
昨日はここまでPHPを書きました。なんとかエラー回避はできたものの、やはり関連記事の内容を呼び出すところまでは辿り着いていません。
$linkset = '/<a id="bloglink" id="(.*?")>(.*?)<\/a>/i';
preg_match_all($linkset , $articlebody, $matches, PREG_SET_ORDER );
$i = 0;
foreach($matches as $link){
require ($link[2]);
$bloglink = preg_replace( '/<a id="bloglink" id="(.*?")>(.*?)<\/a>/', '
<div id="bloglink">
<div id="bloglinkimg"><img src="$articleimage" alt="$articletitle"></div>
<div id="bloglinktext">
<b>$articletitle</b><br>
<p>$articledescription</p>
</div>
</div>
', $link[0]);
$articlebody = preg_replace( $linkset, $bloglink, $articlebody, 1);
}
?>
PHPのrequireで関連記事の呼び出し
昨日は関連記事を呼び出すところができなかったので、まずはここに取り組んでみます。PHPを試走すると、「require ($link[2]);」で呼び出しているのがテキスト部分だと判明しました。「require ($link[1]);」でリンク部分に変更しました。
しかし、このリンクはファイル名ではないので、またまたエラー発生。URLは「blog/20201117」になっていますが、ファイルパスは「blogs/20201117.txt」なんですよね。
ここもpreg_matchが使えそうです。読み込んでいるのは「blog」というパス名ですが、フォルダは「blogs」なので「s」を加え、拡張子「.txt」もつけました。
require ($mypath.$link.".txt");
このPHPでファイルの呼び出しには成功しました!前進してるぞ!
PHPでリンクを作り変える
さて、ファイルの情報を読み込めるようになったので、次はリンクをリンクボックスに作り変えていく作業です。
置き換え方法がまずいんでしょうね。ちょこちょこ弄りまして…。じゃん!箱に情報を読み込むことに成功しました!
まだ問題は残っています。じつはこれ、PHPのechoで出している部分です。本文書き出しの$articlebodyに代入できていない…。そして、最後に呼び出しているリンクの本文が記事に呼び出されてしまっています…。
今日はここまで
今日は時間が来てしまったので、ここまでにします。ここまでで書いたPHPがこんな感じです。
$linkset = '/<a id="bloglink" href="(.*?)">(.*?)<\/a>/i';
preg_match_all($linkset , $articlebody, $matches, PREG_SET_ORDER );
$i = 0;
foreach($matches as $link){
$path = preg_replace('/(.+?)\/(.+?)/','$1s/$2',$link[1]);
require ($mypath.$path.".txt");
$bloglink = preg_replace( '/<(.+?) (.+?)=(.+?) (.+?)=(.+?)>(.+?)<\/(.+?)>/',
'<$1 href="$5" target="_blank">
<div id="bloglink">
<div id="bloglinkimg"><img src="'. $articletimg .'" alt="'. $articletitle .'"></div>
<div id="bloglinktext">
<b>'.$articletitle.'</b><br>
<p>'.$articledescription.'</p>
</div>
</div>
</$7>
', $link[0]);
echo $bloglink;
$articlebody = preg_replace($linkset, $bloglink, $articlebody, 1);
}
?>
箱に情報を入れられるようになったので、かなり進んだのではないでしょうか?では、また明日。
おまけのロードマップ
サイト作成がどのくらい進んでいるかロードマップで進捗を確認すると、ここまで進んでいます。
- 準備 - サイトの全体像を決める
- 使用するプログラミング言語を決めて環境を整える
- サイトの基本構造を作って公開する
- 収益化に最適なサイトにアップグレードする
- GoogleアドセンスとAmazonアソシエイトの申し込みをする ←完了!
- ローカルで簡単に入力ができるようにフォームを作る
- フォローアップ - より収益化に向いたサイト構造に変更する
