PHP вход для проверки на файл - PullRequest
0 голосов
/ 16 августа 2011

Я здесь не прошу, чтобы кто-нибудь сделал работу за меня, мне просто нужно указать правильное направление, поскольку я, кажется, продолжаю возвращаться. знак равно Итак, моя проблема заключается в следующем:

На сайте у меня есть 4 «коробки» перков пожертвований (список льгот, которые кто-то получит в качестве благодарности за пожертвование). Теперь я помещаю форму ввода сверху, где человек мог бы ввести свое имя, и если userx уже внес пожертвование, но хочет проверить, какие лучшие льготы он может получить, он вводит свое имя, и затем оно показывает только как скажем, коробки 3 и 4.

Боксы 1-4 = VIP, SuperVIP, EliteVIP, EliteModerator.

Форма должна проверять один файл, содержащий все имена / пакеты perks, и уже хорошо отформатирован так:

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)

EDIT: Хм, все еще исследуя, я думаю, что было бы легче просто ввести имя / группу в mysql, а затем просто прочитать сценарий вместо lol.

Ответы [ 5 ]

1 голос
/ 16 августа 2011

Используйте регулярное выражение из смещения имени пользователя, чтобы получить первую группу под этим именем пользователя.Вот так:

$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 голосов
/ 16 августа 2011

используйте другие ответы, чтобы выбрать тип модератора. с точки зрения 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 изначально отображались: нет;

, а также присваивайте им идентификатор, соответствующий именам групп. это должно работать

0 голосов
/ 16 августа 2011

Вы можете использовать формат JSON для вашего файла. Используя функции json_encode и json_decode , вы можете легко читать, изменять и записывать свою структуру данных.

Например, у вас может быть такой массив:

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

Конечно, это не хороший пример структуры данных. Но я думаю, вы поймете суть. Вы можете получить к ним доступ как обычный объект php. Чем вы можете экспортировать в формате JSON.

0 голосов
/ 16 августа 2011

Подсказка в названии - ДАННЫЕ база.

В PHP нет семантики блокировки блокировки файлов, необходимой для управления одновременным доступом к данным плоских файлов. И это прежде, чем вы начнете рассматривать сложности поиска в файле и анализа его структуры.

Использовать базу данных.

0 голосов
/ 16 августа 2011
$content = get_file_contents('file.txt');
$content = explode("\n",$content);//split by line...
$group = $content[3];// returns "group: SuperVip"

// 3 - это индексированное число. или что-то похожее в этих строках ... не уверен, сработает ли взорваться, но эй, попробуй :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...