@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
.