Сохранить массив в файл PHP

Иногда нет возможности просмотреть структуру приходящего массива, но необходимость все же в этом есть. Сохранить массив можно в PHP, при помощи встроенной функции print_r(). Но не как в классическом виде, просто передав туда массив, чтобы его распечатать на экране, а еще указать вторым параметром true, сохранить это в переменную, а переменную отдать на запись в файл txt, применив встроенную функцию file_put_contents(). Итак код, который это сделает:

$datatoprintlog = print_r($_SERVER,true);
file_put_contents('serv.txt', "Данные: $datatoprintlog \n", FILE_APPEND);

Пояснение по функции file_put_contents.

file_put_contents

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

Данные: 
Array
(
    [SSH_CONNECTION] => 89.444.125.00 54996 89.444.124.00 22
    [XDG_SESSION_ID] => 7693
    [USER] => itricks
    [PWD] => /var/www/users/data/www/ae-nekrasov.ru/testoflearning
    [HOME] => /var/www/users/data
    [SSH_CLIENT] => 89.444.125.22 54766 22
    [MAIL] => /var/mail/itricks
    [SHELL] => /bin/bash
    [SHLVL] => 1
    [LOGNAME] => users
    [XDG_RUNTIME_DIR] => /run/user/517
    [PATH] => /usr/local/bin:/usr/bin:/bin:/usr/local/
    [_] => /usr/bin/php
    [OLDPWD] => /var/www/users/data/www/ae-nekrasov.ru/test
    [PHP_SELF] => test.php
    [SCRIPT_NAME] => test.php
    [SCRIPT_FILENAME] => test.php
    [PATH_TRANSLATED] => test.php
    [DOCUMENT_ROOT] => 
    [REQUEST_TIME_FLOAT] => 1634734018.7821
    [REQUEST_TIME] => 1634734018
    [argv] => Array
        (
            [0] => test.php
        )

    [argc] => 1
)

В данном случае у меня нет динамически приходящего массива, в основном такой подход используется при интеграции с какими-то сервисами, где данные приходят в массив $_REQUEST, соответственно просто вместо $_SERVER подставьте в код $_REQUEST или другой нужный массив.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *