PHP 統計画像の使用状況、バックリンクなど。
最近、私のウェブサイト上の写真、リンク、その他のデータを誰が使用したかに関する統計を作成したいと思いました。
写真の統計はおそらくこんな感じです。
/var/www/html/1.jpg
/var/www/html/tracker.php
/var/www/html/.htacess
RewriteEngine オン
RewriteBase /
RewriteRule ^ (.*).jpg$ tracker.php?id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
header('Content-type:image/jpeg');
readfile($_GET['id'].'.jpg');
//file_put_contents('log.txt',$) _GET['id'].' '.$_SERVER['REMOTE_ADDR'].' '.var_dump(apache_request_headers())); 上記のコードは、イメージが開かれた回数をカウントできます。訪問者数 IP やブラウザなどのデータ。しかし、バックリンクをカウントするにはどうすればよいでしょうか?例: 別の Web サイトがこの写真を使用しています では、私の写真を使用している Web サイトの数をどのように数えるのでしょうか? (単にブラウザを開くのではなく)
また、例えば、小さなプラグインを作成します。ユーザーがこのプラグインを Web サイトに埋め込むことを許可します
コードの書き方を知りたいだけですか?返されるデータとデータベースの関係は個別に設計できます。ありがとう。
ディスカッション (解決策) への返信
私の画像を使用している Web サイトの数を数えるにはどうすればよいですか? (単にブラウザで開くのではなく)
http 経由でリクエストするだけで、ブラウザを使用して開くかどうかを知る必要はありません。
tracker.php に $_SERVER['HTTP_REFERER'] を追加すると、ソース アドレス、つまりアクセスが要求されているページのアドレスを取得できます。
次に、正しい方法で URL のドメイン名を入力します。 ??写真
テーブルでグループ化するだけ??
ID 写真ドメイン
コードでカウントできるのは動的リクエストのみであり、 http://www.mydomain,com/1 などの静的 URL については何もできません。 jpeg
正しいアプローチは、Web サーバーのログ ファイルを分析することです
上記で述べたことは正しいです。すべての写真が動的 php を使用して表示されている場合、プログラムはすでに問題ありません。 $_SERVER['HTTP_REFERER'] を追加してソースを取得します。
Apacheのログを取得することで静的画像を解析できます。
コードでカウントできるのは動的リクエストのみであり、http://www.mydomain,com/1.jpeg などの静的 URL については何もできません
php access_log を分析しますか? そのログは毎日 100 MB 近くあります。cron スクリプトが 5 分ごとに実行される場合、どうすればログ ファイルを効率的に読み取ることができますか? (期間: 現在時刻 - 5 分、現在まで、ログ ファイル全体を完全に読み取る必要もありますか?)
ヒーロー、もっと効率的なコードを教えてくれませんか?ありがとう。
上で言ったことは正しいです。すべての画像が動的 php を使用して表示されれば、プログラムは準備完了です。 $_SERVER['HTTP_REFERER'] を追加してソースを取得します。 Apacheのログを取得することで静的画像を解析できます。
ああ、ありがとう。ちょっとした質問ですが、PHP イメージの動的読み取りには、イメージの静的読み取りよりも多くの CPU、メモリ、IO がかかりますか?すごく増えるのかな?
1. 静的ファイルは Web サーバーによって直接読み取られますが、php による動的読み取りでは、最初に php 解析プログラムを開始してから、php プログラムによってファイルを読み取る必要があります
どちらが足の指をより効率的に使っているかがわかります 2.ログ ファイルのみが追加または削除されず、既存の内容は変更されません。つまり、前回読んだ場所を思い出して、今回は読み続けるだけで済みます。
?? はるかに速く、
php?
一番使いやすい??
すべての仮想ホストのログ ストレージ パスを自分で変更できるわけではありません。
つまり、あなたが開発したプロジェクトは、クラウド サーバーの Web マスターだけが使用できるということです。もちろん、誰が画像を使用するかは重要ではありません。
中国のインターネットは、こうしたことを気にする人は多くありません。共有の精神を持っているはずです。
ある日、写真がたくさん使われていることに気づいたら。その後、アクセスした画像参照をロゴやその他の慎重に作成された広告画像に変換するための疑似静的コードのみが必要になります
多くの画像に「この画像は XXX サイトからのものです。*** アクセスを入力してください」と表示されることに気づきましたか。 、これらはすべて擬似静的であり、1 つの文で実行できます。誰かがウェブサイトの画像を引用している限り、その画像は擬似的に静的に設定された別の画像になります。 ... ファイルは追加のみ可能で、削除はできません。また、既存のコンテンツは変更されません。前回読んだ場所を覚えて、今回も読み続けるだけで済みます。
SSH は cat /var/log/httpd/access_log | grep "1.jpeg" のようなものを使用して、1.jpeg にアクセスしたすべてのユーザーの数百 MB のログをわずか 1 秒で出力できます
PHP はわかりません。そのため、効率を重視し、占有するリソースを減らす必要があります。
nginx サーバーがリファラーのアンチホットリンクを設定し、リファラーを書き込むようにログをカスタマイズできることだけがわかっています
ログを分析するために PHP が必要な場合は...インポートしてみてはいかがでしょうか。定期的に SQL に書き込んでからログをクリアしますか?
ログファイルを使って画像の使用状況を分析する場合、先ほどグループリーダーが言ったように、ログファイルは増加するだけで減少しないため、精度を把握するのは困難だと思います。 。
ログファイルを使って画像の使用状況を分析する場合、先ほどグループリーダーが言ったように、ログファイルは増加するだけで減少しないため、精度を把握するのは困難だと思います。 。
主な問題は、PHP で大きなファイルの最後の数レコードを効率的に開く方法です。詳細を読み取り、各読み取りを access_log の最後の 1000 レコードに設定できます。私のサーバーには 32 GB の RAM が搭載されていますが、低い CPU オーバーヘッドが必要です。ありがとう。 ... 追加のみが可能で、削除はできません。また、既存のコンテンツは変更されません。したがって、前回読んだ場所を覚えていて、今回も読み続けるだけで済みます
http://httpd.apache.org/docs/2.2/programs/rotatelogs.html のメソッドを見つけます
毎分回転ログを使用します 新しいログを生成しますログファイル。しかし、Apache を再起動しても目的のログが生成されないのはなぜでしょうか?
すごいです
Apache のバージョンに関係している可能性があります http://apache.chinahtml.com/logs.html
ログ ファイルの読み取りに関して、私の意味が理解できないようですね
ログ ファイルは可変ですインデックス作成の場合、指定した行を見つけることはできません
ただし、一度読んだログはすべて「古い情報」ですので、自分で作成する必要はありません。再度読み取る必要はありません
ftell -- ファイル ポインターの読み取り/書き込み位置を返します
fseek -- ファイル ポインター内の位置
ftell を使用する必要があるのは、オフセットを読み取るためだけです各 fget の後に位置を決めて保存します
次回読み取るときに、前回の時刻を取得します fseek を使用して、保存したオフセット位置を位置決めします その後、読み取りを続けます
fgets を一度に 1 行ずつ実行するのは効率が悪すぎると言う人も確実にいます。しかし、fread を一度に 1 つの大きなブロックを使用する場合、最後の半分の行を処理するのは簡単ではありません
ありがとう、わかりました。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

ReactPhpの詳細な解釈の非ブロッキング機能の公式紹介は、多くの開発者の質問を呼び起こしました。
