Как я могу извлечь строку из массива PHP, который возвращает несколько строк - PullRequest
0 голосов
/ 11 октября 2019

У меня есть переменная PHP с именем $ user, я устанавливаю переменную следующим образом:

$user = $e->getUser();

Когда я повторяю $ user, я получаю следующие данные в массиве:

Array
(
    [user_id] => 1
    [login] => test
    [pass] => ***
    [remember_key] => 
    [pass_dattm] => 2019-10-11 19:35:08
    [email] => test@test.com
    [name_f] => test
    [name_l] => test
    [street] => 
    [street2] => 
    [city] => 
    [state] => 
    [zip] => 
)

Я хочу отобразить только значение 'login' в файл, используя exec, однако я пробовал разные решения, найденные в stackoverflow, но, похоже, он не работает для меня. Я пытался:

$user = $e->getUser();
exec("echo '".$user['login']."' >> /tmp/test");

, а также пытался:

$user = $e->getUser()->login();
exec("echo '".$user."' >> /tmp/test");

Однако оба возвращают пустую переменную. Как мне этого добиться?

1 Ответ

3 голосов
/ 11 октября 2019

Вы должны использовать escapeshellarg(), чтобы убедиться, что он правильно экранирован.

$user = $e->getUser();
$login = escapeshellarg($user['login']);
exec("echo $login >> /tmp/test");

Но для этого нет особых оснований использовать exec(), поскольку PHP может записывать в файлы сам.

file_put_contents("/tmp/test", $user['login'] . "\n", FILE_APPEND);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...