kamenokoki.com

【114日目】ページごとのアクセス解析をするPHPを作成したい-4

Posted:  Last Update:

ページごとのアクセスをカウントするPHPを書き始めて4日目です。昨日は開いているURLのページを書き込めるようになったので、今日はいよいよ数字を足していくPHPに取り組みます!

昨日までの作業振り返り

昨日までで、「access.txt」という集計ファイルを開き、ページのURLの存在有無を判定して、なければURLを書き足していくPHPを書きました。PHPはこんな感じです。

<?php
$value = "$myurl/$urlfolder/$filenum";
$i = 0;
$fp = fopen("$mypath/top/access.txt", "c+");
while (!feof($fp)) {
    $buffer = fgets($fp, 4096);
    if (strstr($buffer, $value) !== false){
        $i=1;
    }
}
if($i==0){
    fwrite($fp, "\n".$value." 1");
}
fclose($fp);
?>

今日やりたいこと

今日は、ページにアクセスがあったらアクセス数を足していくPHPに取り組みたいと思います。今は下記のように「1」と書かれているので、この数字を「2」「3」「4」…と変えていくだけです。

http://localhost:50004/article/welcome 1
http://localhost:50004/article/20201212 1
http://localhost:50004/article/20201121 1
http://localhost:50004/article/20201117 1
http://localhost:50004/article/20201115 1
http://localhost:50004/article/20201109 1
http://localhost:50004/article/20201217 1

数字を変えていくと言っても、どこから手をつけていいのかさっぱり分かりません!

Google先生に聞いてみる

まずは検索ですね。どういう手段をとればいいのか分からないので、色々言葉を変えて検索してみたいと思います。

検索した結果、部分的な書き換えを直接することは難しいことが分かりました!数字が繰り上がったときに、次の行の最初の文字を上書きしてしまうみたいです。

さらに検索しました。一度ファイルの中身を変数に格納して、preg_replaceで書き換え、ファイル全体を上書きする、という方法でやってみようかな?

全面的に書き換えが必要ですが、さっそく試してみたいと思います!

PHPを書いてみた!

いちおうここまで書きました。

<?php
$value = "$myurl/$urlfolder/$filenum";
$str = file_get_contents("$mypath/top/access.txt");
$findvalue = $value.'[.*?]';
preg_match_all($findvalue, $str, $matches, PREG_SET_ORDER);
if ($matches > 0){
    $replace = preg_replace('[.*?]', '[$i++]', $matches[0]);
    $str = preg_replace($findvalue, $replace[0], $str, 1);
    $fp = fopen("$mypath/top/access.txt", "w");
    fwrite($fp, $str);
    fclose($fp);
}
else{
    $fp = fopen("$mypath/top/access.txt", "c+");
    fwrite($fp, "\n".$value." [1]");
    fclose($fp);
}
?>

そして今「Delimiter must not be alphanumeric or backslash」というエラーが出ています!変数の格納の仕方が悪いんでしょう…。

今日はここまで

一進できているかどうかもよくわからないまま、時間が来てしまいました!今日はここまで。

明日はもう少し「preg_replace」と「preg_match」について研究してみたいと思います!

おまけのロードマップ

サイト作成がどのくらい進んでいるかロードマップで進捗を確認すると、ここまで進んでいます。

  • 準備 - サイトの全体像を決める
  • 使用するプログラミング言語を決めて環境を整える
  • サイトの基本構造を作って公開する
  • 収益化に最適なサイトにアップグレードする
  • GoogleアドセンスとAmazonアソシエイトの申し込みをする ←完了!
  • ローカルで簡単に入力ができるようにフォームを作る
  • フォローアップ - より収益化に向いたサイト構造に変更する
記事をシェアする

亀の子に連絡

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

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

広告