Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Php 概念及;算法:如何只记录小部件的单个URL?_Php_Url_Widget - Fatal编程技术网

Php 概念及;算法:如何只记录小部件的单个URL?

Php 概念及;算法:如何只记录小部件的单个URL?,php,url,widget,Php,Url,Widget,我已经为我的web应用程序创建了一个小部件。用户获取代码并将代码粘贴到他们的网站上,我的小部件在他们的网站上工作,比如twitter、digg和其他社交小部件 我的widget基于post,对于单个post(比如postid:234),我提供单个widget,因此任何人都可以将该widget嵌入他们的网站 现在我想知道我所有的小部件都发布在哪里,发布的是哪篇文章?为此,我在我的小部件启动(onload)时记录了网站的URL,但当有人将小部件放在他们的博客或网站的公共侧栏时,问题就出现了。我每次都

我已经为我的web应用程序创建了一个小部件。用户获取代码并将代码粘贴到他们的网站上,我的小部件在他们的网站上工作,比如twitter、digg和其他社交小部件

我的widget基于post,对于单个post(比如postid:234),我提供单个widget,因此任何人都可以将该widget嵌入他们的网站

现在我想知道我所有的小部件都发布在哪里,发布的是哪篇文章?为此,我在我的小部件启动(onload)时记录了网站的URL,但当有人将小部件放在他们的博客或网站的公共侧栏时,问题就出现了。我每次都会记录URL,所以若它在博客的边栏中,那个么它会记录每个创建副本的帖子的URL


有人能帮忙吗?我应该怎样做才能使我在一个站点上的一个小部件只有一条记录?

我认为这样做有点棘手。这里有一些突然浮现在脑海中的想法

例如,您可以要求用户在获取小部件时输入其站点的URL,或者小部件可以跟踪域或子域,从而提供较少的URL

如果实际站点是domain.com/sitename/,并且该域下可能有多个站点,那么仅仅跟踪该域显然是有问题的。在这种情况下,您可以尝试检测最高的公共目录。大概是这样的:

您有多个类似这样的URL:domain.com/site/page1、domain.com/site/page2,等等。这里最高的公共目录是domain.com/site

我不认为这将总是正确的工作或提供完全准确的结果。为了准确起见,我认为最好的方法是在用户下载小部件的代码时向他们索要URL

编辑:新想法-只需为每个用户生成一个唯一的ID。这可以通过简单地获取当前时间戳或其他内容,并将其隐藏到用户应该复制的代码段中来实现。通过这种方式,您可以跟踪ID本身,它出现在其中的任何URL和域都可以分组在它下面


如果你有一个ID,比如说在一周内或者其他时间内没有被点击,你可以将它从数据库中删除,这样可以避免用未使用的ID填充它

我觉得这样做有点棘手。这里有一些突然浮现在脑海中的想法

例如,您可以要求用户在获取小部件时输入其站点的URL,或者小部件可以跟踪域或子域,从而提供较少的URL

如果实际站点是domain.com/sitename/,并且该域下可能有多个站点,那么仅仅跟踪该域显然是有问题的。在这种情况下,您可以尝试检测最高的公共目录。大概是这样的:

您有多个类似这样的URL:domain.com/site/page1、domain.com/site/page2,等等。这里最高的公共目录是domain.com/site

我不认为这将总是正确的工作或提供完全准确的结果。为了准确起见,我认为最好的方法是在用户下载小部件的代码时向他们索要URL

编辑:新想法-只需为每个用户生成一个唯一的ID。这可以通过简单地获取当前时间戳或其他内容,并将其隐藏到用户应该复制的代码段中来实现。通过这种方式,您可以跟踪ID本身,它出现在其中的任何URL和域都可以分组在它下面


如果你有一个ID,比如说在一周内或者其他时间内没有被点击,你可以将它从数据库中删除,这样可以避免用未使用的ID填充它

我同意Jani关于唯一id的观点。当你发布脚本时,你将能够始终与该id相关。如果用户反复使用相同的id,你仍然会有重复的id,但至少你会有一种区分不同用户的方法。另一个有用的优点是,正如Jani所说,您现在能够,按ID分组,并获得该用户使用脚本和ID的所有实例的累积数量。

我同意Jani关于唯一ID的观点。当你发布脚本时,你将能够始终与该ID相关。如果用户反复使用相同ID,你仍然会有重复的,但至少你会有一种区分不同用户的方法。另一个有用的优点是,正如Jani所说,您现在可以按ID分组,并获得该用户使用脚本和ID的所有实例的累积数量。

但是询问用户其域对于用户来说会很耗时,而且没有其他网站会这样做,这将是一个可用性问题……好的,还有一个想法:对于每个用户,为脚本生成唯一的ID。然后跟踪ID而不是URL-您仍然可以存储域、完整的URL和所有内容,但您可以根据ID对其进行分组。但是询问用户其域对于用户来说会很耗时,并且没有其他网站会这样做,这将是一个可用性问题……好的,还有一个想法:对于每个用户,为脚本生成一个唯一的ID。然后跟踪ID而不是URL-您仍然可以存储域、完整URL和所有内容,但您可以根据ID对其进行分组。