【PHP】日別ファイル作成 デリミタエラー

【PHP】日別ファイル作成 デリミタエラー

★このサイトもこれで作ってます次世代サイト作成システムSIRIUS

日別のアクセスログファイルを作成

日別のアクセスログファイルを作るの続き。

 

複数のサーバーからアクセスログ(軽量化した生ログ)をダウンロードしてくる。

 

それを指定のディレクトリに納めた上で、指定した日付を含むアクセスログをパターンマッチで見つけて、最後に出力用にまとめる。

 

色んな日付のアクセスログが混ざっていても、ここでふるい分ける。

 

ここで注意が必要なのが、日付の表示形式で、Apacheのアクセスログは、

[26/Jan/2018:00:12:59 +0900]

という形式で出力されてくるので、ちょっと工夫が必要になる。

 

と言うのもパターンマッチは普通、preg_match( $pattern , $data)の形式で使うのだが、日付表示にスラッシュ(/)が含まれているため、このままでは

Warning: preg_match(): Delimiter must not be alphanumeric or backslash
(デリミタは、英数字やバックスラッシュ以外でないとダメ)

というデリミタ・エラーが出てしまうのだ。

 

デリミタというのは「区切り文字」のことで、 通常は「/」が使われるのだが、日付にもスラッシュがあるため、混乱が起こっていると言うことらしい。

 

そこで、スラッシュ以外のデリミタを使う必要がある。

 

以下の例では、preg_match('{'.$yesterday.'}', $logstar)と言うように、{ }を使っているが、他にも[ ]とか、<>等も使えるので、それに変更する。。



パターンマッチで、特定日付にマッチするアクセスログだけ抜き出す。

 

成型したログファイルを出力

出力される拡張子は、今回は[.txt]にしてみた。

 

軽量化された生ログが【.log】で、→日別にまとめてない段階が【.ini】で、→日別にまとめた段階が【.txt】と言う風に、混じってもどの段階か分かるようにしている。

 

ということで、次は日別のアクセスランキングを作るPHPスクリプト。

スポンサードリンク

ネットで稼ぐ 教材人気ランキング

★第1位★儲かるセールスレター、チラシの書き方はこれ!キャッチ・ザ・ライティング

★第2位★集客できるホームページはこれ!SEOに強い戦略的テンプレート「賢威7」

★第3位★情報企業で稼げ!和佐大輔と木坂健宣のネットビジネス大百科

★第4位★ツイッターで稼ぐ方法 集客&自動化ツールフォローマティックXY

★第5位★月収1,000万円以上!ネットで大金を稼ぐ小玉歩のノウハウザ・メールマガジン

このエントリーをはてなブックマークに追加