2014-08-08 6 views
0

У меня есть следующие в моем PHP для управления доступом к странице:Использование JSON вместо текста в массив PHP

<?php 
    $array = array(
        'Joe User', 
        'Tom Coffee', 
        'Edith McBurger', 
        'Dan Theman' 
    ); 
    if (in_array($_SESSION['user_name'], $array)) { 
    echo '<a href="page2link.php">Link Page</a><br>'; 
    } 

?> 

Он отлично работает, но я бы предпочел изменить JSON или другой небольшой текстовый файл вместо редактирования всей страницы, чтобы изменить этот список.

Как написать это, чтобы список имен был во внешнем файле, и мой PHP относится к этому файлу?

+0

использовать file_get_contents, чтобы получить содержимое файла с данными JSON и использовать json_decode ($ fileData, true), чтобы получить данные в массиве. Тогда использование может использовать in_array для проверки $ _SESSION, поскольку теперь вы делаете git –

ответ

0

Создайте .txt файл, напишите одно имя на отдельных строках. Затем используйте функцию file, чтобы открыть файл. file() создает базу массива на каждой строке. Затем вы можете использовать остальную часть своего фрагмента для аутентификации.

auth.txt

Joe User 
Tom Coffee 
Edith McBurger 
Dan Theman 

auth.php

<?php 
    $array = file('auth.txt', FILE_IGNORE_NEW_LINES); 
    if (in_array($_SESSION['user_name'], $array)) 
    { 
     echo '<a href="page2link.php">Link Page</a><br>'; 
    } 
?> 
  • Вы можете использовать fopen('auth.txt', "a+") и fwrite() динамически писать на файл позже, тоже.
1

вы можете написать файл в формате JSON, а затем просто json_decode это так:

ваш текстовый файл:

{

"имя": "Идан"

}

ваш код php //

<?php 

$string = file_get_contents("/your file location"); 
$json = json_decode($string,true); 

echo $json['name']; //and it will output the value "idan" 
+0

echo $ json ['key']; будет давать предупреждение для неопределенного индекса –

+0

json file works ny key и value - by 'key' его означает ключ json. –

Смежные вопросы