【问题标题】:(PHP) Help debug tracking script to show only unique items(PHP) 帮助调试跟踪脚本以仅显示唯一项目
【发布时间】:2010-01-29 06:38:31
【问题描述】:

我有这个脚本,我正试图在我的网站上实现它,该脚本假设跟踪当前正在玩的游戏,但唯一的问题是,当我调用脚本来显示条目时,它会显示重复项,我希望脚本真正探索字符串并仅获取 $gamename 并查找重复项,而不是整个字符串。

脚本的作用: 记录gameID、gamename、gamethumb url、IP和时间都用|隔开。 示例:1744|最简单的单板滑雪|最简单的单板滑雪|77.88.42.26|1264717552

查找 IP,如果已经存在,则使用新信息更新记录。 如果 IP 不存在,则使用该信息写一个新行。 如果记录较旧,则 60 分钟删除它。

它只是一个简单的脚本,我将使用它来显示人们当前在网站上玩什么。

$dataFile = "visitors2.txt";
$numbergames = 30;
//Please do not edit bellow this line

error_reporting(E_ERROR | E_PARSE);

$users = array();

//getting
$fp = fopen($dataFile, "r");
flock($fp, LOCK_SH);
while(!feof($fp)) {
$users[] = fgets($fp, 4096);
}
flock($fp, LOCK_UN);
fclose($fp);
$i = 0;
echo '<ul>';
foreach(array_unique($users) as $key => $data) {
list($game2id , $gamename , $gamethumb , , ) = explode("|", $data);
//echo $game2id . $gamename;
if($gamename != "" && $i <= $numbergames) {
$newpageurl = str_replace(" ", "-", strip_tags(trim(str_replace($rplce, "", $gamename))))  ;
$url = $game2id .'-'. $newpageurl .'.html';

echo '<li><a href="'.$url.'"><img src="./arcade/img/'.$gamethumb.'.png" width="35" height="35" border="0" /></a>'.$gamename.'</li>';
}
$i++;

}

请帮助并提前感谢大家。

【问题讨论】:

  • 您没有为此使用数据库是否有特殊原因?
  • 一天更新几百次,数据库不是解决办法:(我的网站已经在大量使用mysql数据库了。

标签: php debugging tracking


【解决方案1】:

您的array_unique() 电话只是消除重复的行 - 整行,而不仅仅是游戏名称。您需要创建一个仅包含游戏名称的数组。然后,您可以消除受骗者。

类似:


$currentGames = array();
$max = 30;
$fp = fopen($dataFile, "r");
flock($fp, LOCK_SH);
while ((count($currentGames) < $max) && (($data = fgetcsv($fg, 0, '|')) !== FALSE) 
{
 if (!in_array($data[1], $currentGames)) $currentGames[$data[0]] = $data[1];
}

这将为您提供一个以游戏 ID 作为键的唯一游戏名称的关联数组。

【讨论】:

  • 有什么想法可以在我消除了骗子后将它们重新组合起来?我还需要游戏名、gameid 和 gamethumb :) 感谢 emmychan 的帮助
  • 好吧,您可以创建一个多维数组,并使用 array_key_exists 比较游戏 id(密钥)而不是游戏名称。即if (!array_key_exists($data[0], $currentGames)) $currentGames[$data[0]] = array('name' =&gt; $data[1], 'thumb' =&gt; $data[2]);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多