我想要一个图像代码来计算查看图像的次数,无论图像在哪个站点上找到。我想使用img src标签,并让src指向一个计算该视图的php页面,然后返回要查看的图像。我在想这样的事情:
<img src="www.mywebsiteurl.com/something.php" />
我如何编写“something.php”以便返回正确的图像文件?我知道如何记录页面视图,但如果我必须在这种情况下做一些不同的事情,请告诉我。
答案 0 :(得分:2)
您的脚本需要:
header('Content-Type: image/jpeg');
)readfile( $path_to_image )
); 答案 1 :(得分:1)
从php加载图像/文件比正常加载文件慢。
主要缺点:
如果您使用数据库并希望在图像加载后增加列,则人们可以反复加载图像。因此,您需要在每个查询中使用条件。
替代解决方案
在要显示图像的页脚中输入此代码
ajax电话
$.get("inc_img_view.php?img_id="+<?php echo $img_id; ?>);
答案 2 :(得分:0)
这是您可以拥有的最准确的版本:
<?php
header('Content-type: image/jpeg');
readfile('somepic.jpg');
答案 3 :(得分:0)
您可以使用类似于www.mywebsiteurl.com/image_renderer.php?url=url_to_image
的网址调用图片。
image_rendered.php:
<?php
header("Content-Type: image/jpeg");
$url = urldecode($_GET['url']);
$headers = array(
"GET ".$url." HTTP/1.1",
"Content-Type: text/xml; charset=UTF-8",
"Accept: text/xml",
"Cache-Control: no-cache",
"Pragma: no-cache"
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
$r = curl_exec($ch);
// you can connect to your database and increment the number of times this image was viewed
echo $r;
?>
希望这会指引你走向正确的方向。
答案 4 :(得分:0)
是的,你有个好的开始。 我会做这样的事情
<img src="www.mywebsiteurl.com/image_counter.php?src=image.jpg" />
在image_counter.php中,取$src = $_GET['src']
作为图片来源。
然后为数据库中该图像命中+1。
然后做
header('Content-type: image/jpeg');
readfile($src);
答案 5 :(得分:0)
这样的事情应该有效:
<?php
$file = $_GET['img'];
$path = "images/";
// do an increment of views on the image here - probably in a database?
$exifImageType = exif_imagetype($path.$file);
if ($exifImageType !== false) {
$type = image_type_to_mime_type($exifImageType);
}
header('Content-Type: $type');
echo file_get_contents($path.$file);
注意:这会产生类似的结果:
<img src="getimage.php?img=image.jpg" />
在递增视图后显示正确的图像。
您可以随时添加一些.htaccess,以便对/ images /的所有调用都通过您的图像文件。这意味着你可以保持URL看起来好像它正在获得一个实际的图像文件(例如/images/logo.jpg将被重写为实际通过getimage.php?img = logo.jpg)