2009-07-23 22 views
6

Tôi hiểu các khái niệm cơ bản về theo dõi pixel, tôi có thể chèn pixel tham chiếu hình ảnh trên tên miền theo dõi của tôi đến các trang web khác.Cách sử dụng Theo dõi pixel trên các tên miền trong PHP

Tuy nhiên, làm cách nào để tăng số pixel thực tế trên tên miền theo dõi của tôi? Có một số loại nhật ký cho tôi biết mỗi lần ảnh điểm ảnh đó được phân phát không? Tôi có thể làm điều gì đó như:

<img src="http://www.foo.com/serveImage/getImage.php?id=5123" /> 

sau đó có trang getImage, phân phát hình ảnh và tăng dựa trên id đã được chuyển vào? hoặc có cách nào tốt hơn để đạt được điều này?

Cảm ơn bạn trước.

Trả lời

13

nếu bạn muốn chỉ ra một gif đây là một cách đơn giản nhanh chóng, chỉ cần đảm bảo kịch bản của bạn bất cứ điều gì không đầu ra khác trước hoặc sau:

header("Content-type: image/gif"); 
header("Content-length: 43"); 
$fp = fopen("php://output","wb"); 
fwrite($fp,"GIF89a\x01\x00\x01\x00\x80\x00\x00\xFF\xFF",15); 
fwrite($fp,"\xFF\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00",12); 
fwrite($fp,"\x2C\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02",12); 
fwrite($fp,"\x44\x01\x00\x3B",4); 
fclose($fp); 
+0

Kết quả này sẽ đưa hình ảnh trực tiếp vào bộ đệm mà không tải tệp trước. Đây là nhanh hơn. – Andy

3

Có bạn có ý tưởng đúng.

Bạn cung cấp cho mỗi trang hoặc trang một ID duy nhất, sau đó được chuyển vào hình ảnh src. Vì vậy, trong ví dụ ID của bạn là 5123.

Trong tập lệnh getImage.php của bạn, hãy sử dụng ID này để tăng cơ sở dữ liệu (hoặc bạn ghi lại dữ liệu) và trả về bất kỳ hình ảnh nào bạn muốn. Nếu bạn muốn hình ảnh bạn quay lại hiển thị số lần truy cập, bạn có thể tạo hình ảnh khi đang di chuyển với số GD extention - xem hướng dẫn sử dụng PHP để biết thêm thông tin về nó.

3

này là mã theo dõi của tôi:

<?php 

$id = $_GET['site_id']; 

// do track 

$imageFile = 'images/pixel.jpg'; 
$im = imagecreatefromjpeg($imageFile); 
header('Content-type: image/jpeg'); 
imagejpeg($im); 


?> 
+5

Nếu bạn muốn giảm sử dụng tài nguyên, không sử dụng GD để đọc tệp hình ảnh và sau đó nhổ nó ra. Chỉ cần gửi tiêu đề nội dung, và sau đó sử dụng 'readfile()'. – gnud

+0

@gnud bạn đúng ... bây giờ sẽ khôn ngoan hơn khi chuyển hướng đến hình ảnh với tiêu đề HTTP 301 ... –

1

Loại câu trả lời tiếp tuyến, nhưng quá dài để nhận xét:

Bạn không nhất thiết phải tăng bất cứ điều gì, tùy thuộc vào cách bạn triển khai. Nếu bạn đang hướng tới việc làm cho nó siêu nhanh, chỉ cần dựa vào nhật ký yêu cầu máy chủ là đủ. Mọi yêu cầu cho "getImage.php? Q = 5123" sẽ có sẵn, bạn chỉ cần lấy thông tin có liên quan ra khỏi chuỗi truy vấn.

Bạn có thể phân tích cú pháp nhật ký thành cơ sở dữ liệu tốt, có thể truy vấn sau này (qua cron và cộng sự), ngoài băng mà không ảnh hưởng đến việc phân phối lỗi theo dõi. Làm tất cả trong một lần là một chút thanh lịch hơn, nhưng nếu bạn đang xử lý rất nhiều yêu cầu, các bản ghi đã có anyway.

Phần thưởng: nhật ký máy chủ cũng có liên kết & dấu thời gian, vì vậy bạn có thể dễ dàng xem liệu ai đó đang trực tiếp đánh búa getImage.php hoặc liên kết với nó từ nơi khác đến trò chơi các con số.

Các vấn đề liên quan