Задать вопрос
@iitovka

Как использовать simplexml_load_file и serialize в одном скрипте?

Делаю обработку: чтение xml файлика и запись данных куда надо.
вот сверху читаю файл так:
$xml = simplexml_load_file("test.xml");
foreach($xml->Товары as $items)
{
	foreach($items->Скидка as $item)
	{
		foreach($item->Условие as $rules)
		{	
			foreach($rules->Параметр as $rule)
			{	
				$xmlids[]= $rule;
			}	
		}
	}
}


прочитала файл, собрала массив нужных мне данных ($xmlids) - тут все ок.
потом ниже в коде используется функция serialize - нужна для записи в БД.
но в итоге выдает ошибку:
[Exception]
Serialization of 'SimpleXMLElement' is not allowed (0)
/var/www/ ... /index.php:33
#0: serialize(array)
/var/www/ ... /index.php:33

Как обойти это?
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
@Snewer
Замените
$xmlids[]= $rule;

На
$xmlids[]= (string) $rule;
Ответ написан
Комментировать
Melkij
@Melkij
DBA для вашего PostgreSQL?
$xmlids[]= $rule;

Вот здесь $rule - всё ещё объект типа simplexmlelement. А его сериализовать не получится.

Если в самом xml на этом месте расположен скаляр - то приведите его к скаляру явным образом.
$xmlids[]= (int) $rule;
// или, смотря что у вас там
$xmlids[]= (string) $rule;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽