我希望我的应用程序能够判断一个图像是否在过去30天内没有被查看过,并将其删除(以及数据库中与其相关的数据)。我知道你可以让PHP动态读取和输出图像,但我听说这对系统来说相当繁重。有没有办法让我跟踪这些点击,即使图像是直接查看的?( htaccess能做到这一点吗?)提前谢谢。
发布于 2010-12-30 07:47:06
您可以解析出HTTP日志,并在事后进行此分析。
也就是说,我仍然推荐使用“动态PHP文件输出图像”的方法-注意,PHP文件可以简单地流出文件。是的,它会比不使用PHP慢一些,但它不会对您的系统造成显著的性能影响。
发布于 2010-12-30 07:54:29
对于.htaccess来说,像这样的东西...
RewriteRule ^image/(.*)$ image.php?id=$1对于PHP..。
$id = $_GET["id"]; //don't forget to sanitize
mysql_query("UPDATE images SET views = views + 1 WHERE image = '$id'"); //update no of views
header("Content-Type: image/jpeg"); //send image header
readfile($id); //output file to browser发布于 2010-12-30 07:48:53
您可以创建一个脚本来获取图像并ping您的数据库,以显示图像已被查看。通过将脚本的返回类型设置为image/jpg,您可以直接使用此脚本,而不是直接访问图像:
<?php
//simplified image display script
$imagepath="phpimages/$id.jpg";
$db->pingImage($id);
$image=imagecreatefromjpeg($imagepath);
header('Content-Type: image/jpeg');
imagejpeg($image);
?>然后使用:
<img src='fetchimage.php?id=478' alt='tracked image' />https://stackoverflow.com/questions/4558850
复制相似问题