php: выходы simplexml_load_file различаются в разных средах - PullRequest
1 голос
/ 27 апреля 2020

Я использую simplexml_load_file для загрузки xml и импорта товаров в дБ. Однако в моем случае есть несоответствие тому, как функция simple_load_file работает в другой среде. Например, если я запускаю следующий код:

$xmlPath = __DIR__.'/../files/xml/data.xml';
$xmlElements = simplexml_load_file($xmlPath);

foreach ($xmlElements->bien as $element) {
    var_dump($element);
}

Проблема в том, что свойства для $element могут отличаться на моем локальном компьютере и сервере разработки. Пожалуйста, проверьте скриншот на выводе $ element .

Вывод для моего локального файла выглядит следующим образом:

public 'type_diffusion' => 
    object(SimpleXMLElement)[6]
      public 'code' => string 'FERME' (length=5)
      public 'designation' => 
        array (size=3)
          0 => string 'Fermé au réseau ' (length=18)
          1 => string 'Closed to the network ' (length=22)
          2 => string 'Im Netzwerk nicht verfügbar ' (length=29)

А на сервере разработки это выглядит следующим образом:

["type_diffusion"]=>
  object(SimpleXMLElement)#6 (2) {
    ["code"]=>
    string(5) "FERME"
    ["designation"]=>
    array(3) {
      [0]=>
      object(SimpleXMLElement)#41 (2) {
        ["@attributes"]=>
        array(1) {
          ["lang"]=>
          string(2) "fr"
        }
        [0]=>
        string(18) "Fermé au réseau "
      }
      [1]=>
      object(SimpleXMLElement)#42 (2) {
        ["@attributes"]=>
        array(1) {
          ["lang"]=>
          string(2) "en"
        }
        [0]=>
        string(22) "Closed to the network "
      }
      [2]=>
      object(SimpleXMLElement)#43 (2) {
        ["@attributes"]=>
        array(1) {
          ["lang"]=>
          string(2) "de"
        }
        [0]=>
        string(29) "Im Netzwerk nicht verfügbar "
      }
    }
  }

Часть xml имеет вид следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<Agence>
  <date>27.04.2020 16:23:42</date>
  <bien>
    <introducteur>oui</introducteur>
    <type_diffusion>
      <code>FERME</code>
      <designation lang="fr">Fermé au réseau </designation>
      <designation lang="en">Closed to the network </designation>
      <designation lang="de">Im Netzwerk nicht verfügbar </designation>
    </type_diffusion>
  </bien>
</Agence>

На моем локальном компьютере свойство type_diffusion -> designation является массивом, и все его элементы являются строками в моей локальной системе. Но на моем сервере разработки элементы внутри массива type_diffusion -> designation имеют тип SimpleXMLElement.

Я проверил документацию на simplexml_load_file, но не смог найти ничего полезного. У вас, ребята, такая же проблема? Как вы решаете его несоответствия между средами?

Большое спасибо!

...