2014-09-27 2 views
0

Я работаю над сохранением результата XML-потока в базу данных ... Я могу загрузить файл ... но когда я хочу хранить данные в массиве, он хранит вместо значения ([title] = 'Klapka 120mm';) это:SimpleXML хранения данных в массив

[название] => SimpleXMLElement Object ([0] => Klapka 120мм)

вы знаете, где может быть проблема?

Исходный код:

Вот часть одной функции:

$import_file = simplexml_load_file($this->input->post('import_url')); // load file from url 
$affected_products = 0; 
    foreach($import_file->SHOPITEM as $product) { 
        $affected_products += $this->import_product($product); 
    } 

Вот первая часть функции import_product:

public function import_product($product) 
{ 
    /* save product data into array */ 
    $data = array(
      'title' => $product->PRODUCT, 
      'content' => $product->DESCRIPTION, 
      'price' => $product->PRICE, 
      'price_vat' => $product->PRICE_VAT, 
      'ean' => $product->EAN, 
      'count' => $product->AVAILABILITY 
     ); 
    die(print_r($data)); 

Большое спасибо за ваши ответы

+0

'$ данных = array_map («strval», $ данных);' – hakre

ответ

0

Вам нужно передать элементы в строки, так как все эти элементы являются экземплярами SimpleXMLElement.

$data = array(
    'title'  => (string)$product->PRODUCT, 
    'content' => (string)$product->DESCRIPTION, 
    'price'  => (string)$product->PRICE, 
    'price_vat' => (string)$product->PRICE_VAT, 
    'ean'  => (string)$product->EAN, 
    'count'  => (string)$product->AVAILABILITY 
); 

Для некоторых из них приводится к целому или поплавка может представлять интерес

+0

это работает. Большое спасибо :) – user1870556

Смежные вопросы