@9StarRu

Можно ли разделить файл на несколько файлов и дать им названия?

Имеется огромный XML файл со следующей структурой:

<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 1</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
<Category>
<Name>Cat 2</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
<Category>
<Name>Cat 3</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>


Можно ли его разделить с помощью PHP на несколько файлов так, чтобы в каждом файле сохранялась одна категория?

Например так:

cat_1.php

<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 1</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>


cat_2.php

<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 2</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>


cat_3.php

<?xml version="1.0" encoding="UTF-8"?>
<Catalog>
<Category>
<Name>Cat 3</Name>
<Site>...</Site>
<Site>...</Site>
<Site>...</Site>
</Category>
</Catalog>


Получаем XML файл

$url = 'https://site.ru/file.xml';

$fp = fopen("file.xml", "w");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_FILE, $fp);
$res = curl_exec($ch);
curl_close($ch);
//var_dump($res);
$file = 'file.xml'; // файл XML

$read = simplexml_load_file($file); // получаем объект класса

$xml = $read->Category; // $xml - объект-массив, вложенные теги - его свойства;
$count = count($xml); // кол-во элементов массива


Название файлам брать из названия категории <Name></Name>, чтобы каждый раз конкретные файлы отвечали за конкретные категории.

Подскажите можно ли реализовать и как?

Спасибо!
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg

Можно ли разделить файл на несколько файлов и дать им названия?

можно

Можно ли его разделить с помощью PHP на несколько файлов так, чтобы в каждом файле сохранялась одна категория?

можно

Подскажите можно ли реализовать и как?

Перегнать xml в массив, в цикле перебирая категории формировать новые xml файлы. Есть куча библиотек в помощь, в частности: php.net/manual/en/book.simplexml.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы