【124日目】人気記事へのリンクを作成したい-1
Posted: Last Update:
新年あけましておめでとうございます。2021年になりました。大晦日の昨日は紅白歌合戦を見るのに忙しくてサイトのアップグレードを放置してしまいましたが、今日からまた作業を再開したいと思います。
やりたいことリスト
さて、やりたいことリストには下の2つが残っています。
- 人気記事へのリンクをトップページなどに追加する
- Google Adsenceが止まっている理由を確認する
Google Adsenceはまだ止まっています!もう理由が分からない…のですが、のんびり待つことにしました。
というわけで、今日からは「人気記事へのリンクをトップページなどに追加する」に取り組みたいと思います!
人気記事へのリンク作成、計画を立てる
まず、ファイルがどのような状況になっているかチェックしてみましょう。数字はしょぼいですが、意外とまんべんなくアクセスがあることにびっくりしました!あと、一昨日から増えていません、さすがに大晦日と元旦に検索している人は少ないようです。
数字も溜まっているので、このファイルをテスト環境にコピペして、ここからリンクの作成を進めていきたいと思います。
作成の方針はこんなものでしょうか?順番にのんびり、テスト環境でやっていきたいと思います。
- access.txtファイルの中身を読み込む
- 列ごとにPHP変数に代入する
- アクセス数が多い順に変数を並べ替える
- 上位から読み取ってリンクを作成する
- リンクはトップページ、記事のトップページ、サイドバーに入れる
access.txtファイルの中身を読み込む
まずは、テスト環境に、「topaccess」という名称でPHPファイルを作成しました。テストのためにトップページから呼び出せるようにしておこう…。
まず書いたPHP。アクセス数を書き留めているファイルを読み込んで、試しに書き出し(echo)をしています。
$str = file_get_contents("$mypath/top/access.txt");
echo $str;
実際に呼び出しているページをひらいてみると、ちゃんと書き出せてますね!アクセス数をまとめたファイルを開く部分は完成です!
列ごとにPHP変数に代入する
はい、今回各PHPで最も山場になりそうな予感のするPHPに早くも突入しました!今、ベタ打ちしているテキストを、PHPの変数に代入していきます。
どうすればいいのかな?…さっそくGoogle検索です!…あっ、検索していたら「file」という便利な関数を見つけてしまいました。ファイルの内容を一列ずつ配列に代入してくれるそうです。
というわけで、PHPを書き換えました。「var_dump」で配列になっているか書き出して確認しています。
$str = file("$mypath/top/access.txt");
var_dump($str);
書き出しているページを開くと、ちゃんと変数に代入されていました。
URLとアクセスの配列に書き換える
変数に代入する作業がここで終わりではないことに気付きました。URLの部分と、集計数に分けなければいけません…。どうすればいいかな?foreachでそれぞれ分解していきましょうか。
とりあえず書いてみました。「 (空白)」の位置と全体の文字数を数え、「 (空白)」を基準にURLの部分と、アクセス数に分けています。そして、配列「$link」に代入。
$str = file("$mypath/top/access.txt");
foreach($str as $value){
$devide = strpos($value, " ");
$length = strlen($value);
$url = substr($value, 0, $devide);
$count = str_replace(" count:", "", substr($value, $devide, $length));
$link[$url] = $count;
}
var_dump($link);
?>
そして、無事に動きました!…私、成長しているかもしれません!試しに「var_dump」で書き出している配列は下記のように、きちんとURLとアクセス数に分かれています。
今日はここまで
そんなことをしているうちに時間が来てしまいました。今日はここまで。なかなかいい進み具合ですね!
明日は配列をアクセス数順に並び替えて、リンクを作成していきたいと思います!
では、また明日!