Массив печати в файл

Q: Как передать обратно содержимое более чем одного файла пользователю без необходимости создавать отдельные конечные точки.

A: Есть несколько способов сделать это.

Если содержимое каждого файла невелико, то самый простой выход - прочитать все содержимое и затем передать его обратно как объект значения ключа javascript. Например,

let data = {
    file1: "This is some text from file 1",
    file2: "Text for second file"
}

res.send(data);
res.end();

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

Вероятно, есть некоторые библиотеки, которые могут сделать последнее для вас, поэтому я бы посоветовал вам сделать покупки в github, прежде чем разрабатывать / писать свои собственные.

Первый метод является самым простым.

168
задан Gordon 21 February 2012 в 09:27
поделиться

5 ответов

Либо var_export либо установите print_r для возврата вывода вместо его печати.

Пример из руководства PHP

$b = array (
    'm' => 'monkey', 
    'foo' => 'bar', 
    'x' => array ('x', 'y', 'z'));

$results = print_r($b, true); // $results now contains output from print_r

Затем вы можете сохранить $results с помощью file_put_contents. Или вернуть его непосредственно при записи в файл:

file_put_contents('filename.txt', print_r($b, true));
281
ответ дан 23 November 2019 в 20:53
поделиться

<час> test.php

<?php  
return [
   'my_key_1'=>'1111111',
   'my_key_2'=>'2222222',
];

index.php

// Read array from file
$my_arr = include './test.php';

$my_arr["my_key_1"] = "3333333";

echo write_arr_to_file($my_arr, "./test.php");

/**
* @param array $arr <p>array</p>
* @param string $path <p>path to file</p>
* example :: "./test.php"
* @return bool <b>FALSE</b> occurred error
* more info: about "file_put_contents" https://www.php.net/manual/ru/function.file-put-contents.php
**/
function write_arr_to_file($arr, $path){
    $data = "\n";
    foreach ($arr as $key => $value) {
        $data = $data."   '".$key."'=>'".$value."',\n";
    }
    return file_put_contents($path, "<?php  \nreturn [".$data."];");
}
0
ответ дан 23 November 2019 в 20:53
поделиться

file_put_contents ($ file, print_r ($ array, true), FILE_APPEND)

26
ответ дан 23 November 2019 в 20:53
поделиться

Вы можете попробовать:

$h = fopen('filename.txt', 'r+');
fwrite($h, var_export($your_array, true));
24
ответ дан 23 November 2019 в 20:53
поделиться

Просто используйте print_r ; ) Прочитайте документацию:

Если вы хотите захватить вывод print_r(), используйте параметр return. Когда этот параметр установлен в TRUE, print_r() будет возвращать информацию, а не печатать ее.

Так что это одна из возможностей:

$fp = fopen('file.txt', 'w');
fwrite($fp, print_r($array, TRUE));
fclose($fp);
52
ответ дан 23 November 2019 в 20:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: