Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从PHP流式传输图像以进行跟踪_Javascript_Tracking_Pixel_Affiliate_Query Parameters - Fatal编程技术网

Javascript 如何从PHP流式传输图像以进行跟踪

Javascript 如何从PHP流式传输图像以进行跟踪,javascript,tracking,pixel,affiliate,query-parameters,Javascript,Tracking,Pixel,Affiliate,Query Parameters,通过联盟营销和PHP,我知道如何制作如下跟踪像素: <img alt="" src="http://example.com/pixel.php?tracking=43233" /> 然后,在pixel.php中,我执行以下操作: <?php $sTrack = @ $_GET['tracking']; $sTrack = urldecode($sTrack); $sTrack = strip_tags($sTrack); $sTrack = trim($sTrack);

通过联盟营销和PHP,我知道如何制作如下跟踪像素:

<img alt="" src="http://example.com/pixel.php?tracking=43233" />

然后,在pixel.php中,我执行以下操作:

<?php

$sTrack = @ $_GET['tracking'];
$sTrack = urldecode($sTrack);
$sTrack = strip_tags($sTrack);
$sTrack = trim($sTrack);
// do something with sTrack here
header('Content-type: image/gif');
readfile('images/invisible.gif');

使用Javascript设置图像源

<body onload="document.getElementById('tracking_pixel').src='http://example.com/pixel.php'+location.search;">
    <img id="tracking_pixel" src="" />
</body>
或者,您可以使用数据URI。不幸的是,仅1个像素的数据URI相当长

<body>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNgAAIAAAUAAen63NgAAAAASUVORK5CYII=" onload="src='http://example.com/pixel.php'+location.search;" />
</body>


您只需使用作为img src,然后检查该PHP脚本中的引用。

这是服务器端的100%。与JavaScript或jQuery无关。发送MIME头文件后,您需要将二进制文件流式输出。请参阅:@Diodeus,呃,为什么不在Javascript中读取location.search并将其传递到远程PHP页面?看,下面的用户“caleb”明白我在说什么。有没有办法缩短这个时间,比如在IMG标记中使用onload事件,然后在Javascript中使用“this”变量?然后用这个简短的版本让它跨平台工作?顺便说一句,我的一位埃及程序员同事有一个很好的建议。不要传递location.search。相反,在pixel.php中使用$\u SERVER['HTTP\u REFERER']来获取它。这完全避免了Javascript的需要,并允许您将此技术插入电子邮件和论坛中。是的,您可以这样做,但有时您希望跟踪的不仅仅是一个数字。例如,加载时间。很好。因此,如果需要,请使用Javascript。否则,请使用远程页面上的HTTP_REFERER。顺便说一句,我刚刚注意到您的替代解决方案。那太棒了--它把事情缩短了一点。因此,根据需要,我可以选择pixel.php中的$\u服务器['HTTP\u REFERER']或Javascript技术。
<body>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNgAAIAAAUAAen63NgAAAAASUVORK5CYII=" onload="src='http://example.com/pixel.php'+location.search;" />
</body>