mipfikus
@mipfikus
Вообще я не знаю, но

Как сделать файл XML из массивов PHP?

Здравствуйте!
У меня есть код на PHP который некоторым образом получает данные из интернета и формирует из них массивы и выводит их в файл.
Код:
spoiler
$result_arr = [];
$file_content_arr = explode('js-store-prod-name', file_get_contents('./ceni.html')); // разбиваем в массив
array_shift($file_content_arr);                     // удаляем первый элемент - там ничего нет
foreach( $file_content_arr as $file_content ){   // перебираем массив
     $elements  = explode( '</div>' , $file_content);  // разбиваем каждый элемент по ключевому закрывающему
     $result_arr[] = trim(strip_tags('<div class="'.$elements[0]));  //пишем в $result текст первого элемента , добавляя `съеденный` тег и кавычки и применив strip_tags
}
//var_export($result_arr); //текст внутри тега в каждом элементе массива между js-store-price и </div>

$file_content_arr2 = explode('js-product-price', file_get_contents('./ceni.html')); // разбиваем в массив
array_shift($file_content_arr2);                     // удаляем первый элемент - там ничего нет
foreach( $file_content_arr2 as $file_content2 ){   // перебираем массив
     $elements2  = explode( '</div>' , $file_content2);  // разбиваем каждый элемент по ключевому закрывающему
     $result_arr2[] = trim(strip_tags('<div class="'.$elements2[0]));  //пишем в $result текст первого элемента , добавляя `съеденный` тег и кавычки и применив strip_tags
}
//var_export($result_arr2); //текст внутри тега в каждом элементе массива между js-store-price и </div>



$newArray = array();
for($i=0;$i<count($result_arr);$i++){

 $newItem['name'] = $result_arr[$i];
 $newItem2['price'] = $result_arr2[$i];
 array_push($newArray,$newItem,$newItem2); 

}

for($c=0;$c<count($result_arr);$c+=2){
    
  $result = array_merge($newArray[0+$c], $newArray[1+$c]);

print_r( $result);
}
Стоит на первый, на мой взгляд, совсем простая задача - сформировать из этого $result файлик со структурой
spoiler
<document>
   <product>
      <title>Название</title>
      <price>Цена</price>
   </product>
   <product>
      <title>Название</title>
      <price>Цена</price>
   </product>
   ...
</document>
Но у меня никак не получается, пробовал выводить разными способами, перебирать циклами в циклах, использовал какие то решения из интернета, но всё тщетно.
Помогите советом, как решить эту задачу?
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Пригласить эксперта
Ваш ответ на вопрос

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

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