用于检查文件的Php输入

时间:2011-08-16 14:03:55

标签: php jquery forms compare

我不是要求任何人为我做这项工作,我只需要一个正确的方向,因为我似乎一直在回溯。 =) 所以我的问题是:

在网站上,我有4个捐赠津贴“盒子”(有人会因为捐赠而得到的额外津贴清单)。现在,我在顶部输入一个输入表单,一个人可以在其中输入他们的名字,如果userx之前已经捐赠过,但是想要查看他可以得到的更好的额外费用,他会提出他的名字,然后显示就像说框3和4一样。

  

方框1-4 = VIP,SuperVIP,EliteVIP,EliteModerator。

表单应该检查包含所有名称/ perks-packages的单个文件,并且它已经很好地格式化如下:

hvv7:
 subgroups: []
 permissions: []
 group: SuperVip
TEAR_GAS_TEDDY:
 subgroups: []
 permissions: []
 group: EliteVip
KMoore11:
 subgroups: []
 permissions: []
 group: SuperVip
EanEuropean:
 subgroups: []
 permissions: []
 group: Moderator
powerwind:
 subgroups: []
 permissions: []
 group: Vip

同样,我真的只需要朝着正确的方向努力,但任何帮助/答案都会非常感激。我今天在这里的原因是因为,我知道有几种方法可以检查这个词,但令我感到困惑的是检查这个词,然后获取信息3行,返回,然后改变一些div的可见性(隐藏userx已经拥有的那些)

编辑: 嗯,还在研究,我想知道将名称/组放到mysql中是否更容易,然后让脚本只是读取而不是lol。

5 个答案:

答案 0 :(得分:1)

使用用户名偏移量的正则表达式来获取该用户名下面的第一个组。像这样:

$data = file_get_contents("file.txt");
$username = "hvv7"; // Example username
$offset = stripos($data, $username);
$group = "";    

if(preg_match("/group:([ A-Z0-9]+)/i", $data, $matches, PREG_OFFSET_CAPTURE, $offset))
{
    $group = $matches[1][0];
}

echo $group; // Something like Vip

答案 1 :(得分:0)

$content = get_file_contents('file.txt');
$content = explode("\n",$content);//split by line...
$group = $content[3];// returns "group: SuperVip"

// 3是索引编号。 或者类似的东西......不确定爆炸是否会起作用但是嘿嘿呀:)

答案 2 :(得分:0)

您可以将JSON格式用于您的文件。使用json_encodejson_decode函数,您可以轻松阅读,修改和编写数据结构。

例如,你可以有这样的数组:

$data = array(
    "hvy7" => array(
        "subgroups" => array(),
        "permissions" => array(),
        "group" => "SuperVip"
    ),
    "TEAR_GAS_TEDDY" => array(
        "subgroups" => array(),
        "permissions" => array(),
        "group" => "EliteVIP"
    )
);

当然,这不是数据结构的一个很好的例子。但我认为你会明白这一点。您可以作为普通的php对象访问它们。比你可以导出为JSON格式。

答案 3 :(得分:0)

线索在名称 - DATA 基础。

PHP没有管理对平面文件数据的并发访问所需的文件锁定锁定语义。在您开始考虑在文件中搜索并解析其结构的复杂性之前就已经开始了。

使用数据库。

答案 4 :(得分:0)

使用其他答案以获取主持人的类型。就页面上的jquery而言,我会按层次结构的顺序将所有名称放在一个数组中,所以

var groups = ["Vip","Moderator","SuperVip","EliteVip","EliteModerator"]; 

然后说你的变量是

var usergroup = "whatevertheuserGroupYouGetFromPHP";

var index = groups.indexOf(usergroup);

var tempGroups = groups;

tempGroups.splice(0,index);

$.each(tempGroups,function(index,value) {
      $("#" + value).show();
});

并使所有你的盒子CSS最初都有display:none;

并为每个人提供与组名匹配的ID。应该工作