kamenokoki.com

【125日目】人気記事へのリンクを作成したい-2

Posted:  Last Update:

昨日から「人気記事へのリンクをトップページなどに追加する」という課題に挑戦しています。昨日は思いのほか進んだので、興味張り切っていきたいと思います!

昨日までの成果

昨日はアクセス数を集計しているファイルの内容を取り出し、配列の変数に代入することができました。配列「$link」には、URLとアクセス数が代入されています。書いたPHPはこんな感じです。

<?php
$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);
?>

今日は、まず「$link」をアクセス数順に並べ替え、次にリンクを作成していきたいと思います。

配列をアクセス数順に並び替える

これは以前にやったことがあるかも?記事を書いた時に使いました。「krsort」を使うと降順に並ぶはずなんですか…。うまくいきません…。

いろいろ見ていくうちに、配列の書き方が間違っていることに気付きました。キーを数字(アクセス数)にしないとおかしいはずです。で、こんなPHPになりました。

<?php
$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[intval($count)] = $url;
}
krsort($link);
foreach($link as $value){
echo $value."<br>";
}
?>

無事に書き出せたのですが、…しかし、おかしいな…。URLは18個あるはずなのに、8個しか書き出せていません…。

配列をアクセス数順に並び替える

時間切れ!

時間が来てしまいました。今日はここまでです。

PHPがうまく動いていない状態での時間切れなので、なんだか不完全燃焼ですが…。そういう日もあるさ!

明日は、なぜURLが少なくなってしまったのか調べて修正し、リンクまで作成できたらいいな。では、また明日!

記事をシェアする

亀の子に連絡

ランキング参加中!ぽちっとしてね

F2cランキングアイコン 人気ブログランキング ブログランキング・にほんブログ村へ

広告