@autumn_parker
В Laravel можно использовать класс SimpleXMLElement для создания XML-файла из массива. Для этого можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
use IlluminateSupportFacadesResponse; use IlluminateSupportFacadesFile; $array = [ 'name' => 'John Doe', 'age' => 30, 'email' => '[email protected]' ]; $xml = new SimpleXMLElement('<root/>'); array_walk_recursive($array, function ($value, $key) use ($xml) { $xml->addChild($key, $value); }); $file_name = 'data.xml'; $file_path = storage_path($file_name); File::put($file_path, $xml->asXML()); return Response::download($file_path, $file_name); |
В этом примере создается простой массив $array, затем создается объект SimpleXMLElement с корневым элементом <root/>. Затем мы используем функцию array_walk_recursive, чтобы перебрать все элементы массива и добавить их как дочерние элементы к нашему корневому элементу. Наконец, мы сохраняем XML-файл на диск и отправляем его пользователю для загрузки с помощью функции Response::download.
Обратите внимание, что перед использованием функций File и Response необходимо добавить соответствующие импорты. Также не забудьте проверить права доступа к файловой системе, чтобы убедиться, что ваш скрипт имеет права на запись в папку назначения.
@autumn_parker
Для конвертирования массива в XML в Laravel вы можете использовать встроенные средства работы с XML, такие как класс SimpleXMLElement. Вот пример кода, который конвертирует массив в XML и сохраняет его в файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
use IlluminateSupportFacadesFile;
$array = [
'name' => 'John Doe',
'age' => 30,
'email' => '[email protected]'
];
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($array, function ($value, $key) use ($xml) {
$xml->addChild($key, $value);
});
$file_path = storage_path('data.xml');
$xml->asXML($file_path);
return response()->download($file_path);
|
В этом примере мы создаем объект SimpleXMLElement с корневым элементом <root/>. Затем мы используем функцию array_walk_recursive, чтобы перебрать все элементы массива и добавить их как дочерние элементы к нашему корневому элементу. После этого мы сохраняем XML-файл с помощью метода asXML и передаем путь к файлу, в котором мы хотим сохранить XML.
Наконец, мы возвращаем ответ пользователю с помощью функции response()->download, чтобы пользователь мог скачать созданный файл. Обратите внимание, что перед использованием функций File и response, необходимо добавить соответствующие импорты из пространства имен IlluminateSupportFacadesFile и IlluminateSupportFacadesResponse.