当前位置: 首页 > 面试题库 >

显影跟踪像素

罗甫
2023-03-14
问题内容

我正在尝试构建一个像素,以跟踪用户访问时所在的当前URL。我可以使用JS(首选)或1x1图像像素。使用JS,我假设我需要对PHP脚本运行AJAX请求以捕获所需的信息,而对于图像像素,获取当前URL时遇到问题。

我还考虑过使用JS对当前URL进行URL编码,然后将带有编码后的当前URL的图像像素作为查询字符串动态放置到PHP脚本中,但是我可能会变得很长。

如果我要走AJAX路线,可以使用哪个AJAX库?jQuery对于此目的过于ated肿。

还有其他想法吗?


问题答案:

你可以写,创建并返回一个脚本.gif.jpeg或者.png使用PHP使用跟踪目的图像GD库(在现代版本的PHP往往分布)。如果您无权访问GD,则始终可以在启用GD的情况下重新编译PHP。

例:

pixel.php (为便于说明起见):

<?php

  // Create an image, 1x1 pixel in size
  $im=imagecreate(1,1);

  // Set the background colour
  $white=imagecolorallocate($im,255,255,255);

  // Allocate the background colour
  imagesetpixel($im,1,1,$white);

  // Set the image type
  header("content-type:image/jpg");

  // Create a JPEG file from the image
  imagejpeg($im);

  // Free memory associated with the image
  imagedestroy($im);

?>

在一个简单的示例中,您可以使用电子邮件或其他页面中的以下示例URL调用此跟踪像素:

<img src="http://example.com/pixel.php?a=value1&b=value2&c=value3">

使用变量:

在你的pixel.php你就可以分析和解释任何$_GET传递给它的图像标签,简单地内的变量:

if (isset($_GET['a'])) {
  // (Do|log) act on a
}
if (isset($_GET['b'])) {
  // (Do|log) act on b
}
if (isset($_GET['c'])) {
  // (Do|log) act on c
}

根据需要进行应用和重复,但是您可以非常复杂地进行操作,尤其是可以通过在$_GET字符串上设置var来访问有关用户的大量信息。

一个更适用的示例可能是:

<img src="http://example.com/pixel.php?userid=98798&campaign=302&last=8">

不仅跟踪$ _GET变量:

您还可以使用PHP获取更多信息,例如:

// Server variables
$ip = $_SERVER['REMOTE_ADDR'];
$referer = $_SERVER['HTTP_REFERER'];
$useragent = $_SERVER['HTTP_USER_AGENT'];
$browser = get_browser(null, true);
etc...

然后将其插入数据库的跟踪表中:

$sql = "INSERT INTO campaign_tracking 
        ('when','campaign','last','ip','useragent') 
        VALUES 
        (NOW(),'$campaign','$last','$ip','$useragent')";

这是一种广泛用于跟踪电子邮件营销活动的基本方法,特别是在PHP中,但是相同的html" target="_blank">方法也可以用于其他脚本/编程语言和库,也可以用于其他目的。

有关GD的更多有用信息:

  • GD参考 -在php.net上


 类似资料:
  • 跟踪行为控制着 Entity Framework Core 是否会在其变更跟踪器里维持实体实例的信息。如果实体是被跟踪的,任何检测到的该实体的变更都将在 SaveChanges() 时持久化到数据库中。Entity Framework Core 还会对已跟踪的、之前已加载到 DbContext 实例中的查询和实体进行相互的导航属性装配。 提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。

  • 大家好,希望有人能帮助我,我正在尝试获得一个非常基本的zipkin实现,以掌握分布式跟踪。我正在使用Spring靴来做这件事,但似乎不能使它工作。当我尝试为我的服务查找跟踪时,zipkin UI中不会显示任何内容。 我有两个部署如下: 我想要登录的spring boot应用程序: 我得完整日志: 我部署的第二个应用程序是我的zipkin客户机/UI Pom.xml

  • Trace 事件提供了一种机制,可以集中由 V8,Node 核心, 以及用户代码生成的跟踪信息。 启动 Node.js 应用时添加 --trace-events-enabled 标记,可以启用 Tracing. 可以通过在 --trace-event-categories 标记后跟一个用逗号分隔的类别名称列表, 来指定特定的跟踪记录集合。 node 和 v8 默认启用。 node --trace-

  • 跟踪配置指定了Envoy使用的HTTP跟踪器的全局设置。在服务的顶层配置上定义。未来,Envoy可能会支持其他跟踪器,但现在HTTP跟踪器是唯一支持的跟踪器。 { "http": { "driver": "{...}" } } http (optional, object) 提供HTTP跟踪器的配置。 driver (optional, object) 提供处理跟踪和创建span

  • 概述 分布式跟踪使开发人员可以在大型面向服务的体系结构中获得调用流的可视化。在理解序列化,并行性和延迟来源方面,这是非常宝贵的。Envoy支持系统范围与跟踪相关的三个功能: 请求ID生成:Envoy将在需要时生成UUID并填充x-request-id HTTP头。 应用程序可以转发x-request-id头以进行统一日志记录以及跟踪。 外部跟踪服务集成:Envoy支持可插入的外部跟踪可视化提供程序

  • Bug跟踪是一个宽泛的话题;贯穿本书会讨论此问题的各个方面。尽管这里我们要着重于配置和技术因素,但是首先要从一个策略问题开始:Bug跟踪系统中应该包含哪些信息? 术语Bug跟踪很有误导性。Bug跟踪系统也通常会用来跟踪哪些初始与结束状态不同,包含可选的中间状态,并在生命周期中积累信息的问题,例如新特性请求、一次性任务以及被动性的补丁。由于这些原因,Bug跟踪也被称为问题跟踪(issue track