2011-08-16 9 views
0

に対してチェックするために、私はちょうど、正しい方向にポイントが必要です。 =) 私の問題はこれです:PHPの入力は、私がここに私のために仕事をする人のために求めていないのですファイル

私は4つの寄付特典「箱」(特典のリストを寄付いただきありがとうございます)を持っています。さて、私は、人は自分の名前を入力でき、トップ、上の入力フォームを入れています、とUSERXはすでに前に寄贈しましたが、彼が得ることができるもの、より良い特典を確認したいしている場合、彼は彼の名前を入れて、それが示していますボックス3と4のようにしかできません。

ボックス1-4 = VIP、SuperVIP、EliteVIP、EliteModerator。

フォームはすべての名前/特典・パッケージを含む単一のファイルに対してチェックし、そのすでにきれいにこのようにフォーマットする必要がありますもう一度

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行下、そのリターンを有し、かつ、その後visibilyいくつかのdivのを変化させているバッフル(非表示にします既にユーザーのものがあります)

編集: うーん、まだ研究していますが、単にmysqlに名前/グループを取得してから、スクリプトにちょうど代わりにそれを読んでもらえますか?

+0

データを人間が読めるようなフラットなファイルに保存する必要があるので、データを読み書きするたびに手動で解析する必要がありますか? DBへのアクセス権がない/希望があれば、[serialize()](http://php.net/manual/en/function.serialize.php)に興味があります。ページを更新する限り、AJAXでこれをやりたいのですか、ページをリロードしていますか? – DaveRandom

+0

@DaveRandom私はそれが格納されている方法を変更することができたらいいと思います。ゲームサーバーはこのようにファイルを保存し、 "userx has vip、特定のコマンド/特権を読み込む"のように使用します。また、私はajaxに行くことを考えていた、おそらく低速の接続を持つ人々は、再読み込みする必要はありません、フォームはまだ情報を保持する必要があります。 – DreamPhreak

+0

ここに書く必要のある*たくさんのコードがありますが、基本的に必要なのは、ファイルを解析して特定のデータを読み込むPHP手続きと、ユーザ名をサーバに戻して現在のレベルをフェッチするJS手続きです。ユーザーのページの表示を更新します。私は実際にあなたのためにそれのいくつかを実際に書くことなく、多くのプッシュを与えることはできません... – DaveRandom

答えて

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 
0
$content = get_file_contents('file.txt'); 
$content = explode("\n",$content);//split by line... 
$group = $content[3];// returns "group: SuperVip" 

// 3はインデックス番号です。爆発するかどうかわからないこれらの行で同様の か何かが...動作しますが、ちょっとそれを行く:)

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形式で書き出すことができます。

0

手がかりは、名前にDATAベースです。

PHPには、フラットファイルデータへの同時アクセスを管理するために必要なファイルロックのロックセマンティクスがありません。それは、ファイル内の検索とその構造の解析の複雑さを検討する前です。

データベースを使用します。

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を付けます。これはうまくいくはずです

関連する問題