2015-11-17 3 views
0

Первый (для подавления в Flamers) Эта ссылка не отвечает на мой вопрос - как минимум это не было полезно Storing XML object in PHP Session Variablesкак хранить XML OBJ в переменной сессии PHP

Следующая был немного более полезным, поскольку, в отличие от выше, привел пример

Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed'

я попробовал, что не работает.

$obj = simplexml_load_string(path/to/xml/file) 
$_SESSION[somevar] = $obj 

Использование в другом месте приводило к ошибке исключения, которая привела меня к вышеуказанной ссылке. Другие исследования говорят, что вы не можете хранить xml в var var php, если это правда, есть способ использовать его со страницы на страницу. Запись, которую я извлекаю из моих xml-файлов, невелика, поэтому sql будет более убитым. Но для любопытных,

  • Я хочу
  • расширяет свои знания XML
  • и изучение динамики.
  • проект очень маленький

сценарий просто тянет одну запись игры с десяток полей, а затем использует информацию для отображения на странице. Доступ к страницам осуществляется динамически, поэтому различные страницы выполняют разные данные с данными.

У меня есть одна идея: было бы целесообразно создать функцию для вызова записи, когда это необходимо, и манипулировать ею оттуда?

ps Если это спорный вопрос или раздражающий, пожалуйста, не отвечайте - я искал много часов вчера, и я был разочарован сарказмом во многих ответах, ответах, которые либо не ответили на вопрос , или они сами задавали вопросы ОП, которые не касались вопроса - это мешает нам искать ответы. Я сделал некоторые исследования и, наконец, здесь, чтобы проверить с теми, кто хорошо осведомлен и может пролить некоторый свет под другим углом.

Благодаря

+0

$ _SESSION глобальный массив ассоциативный - так это работает так, как любой другой массив делает. –

+0

Редактирование тайм-аута, anyways: $ obj - ссылка на объект xml. –

+0

'$ obj = simplexml_load_string (путь/в/xml/файл)' неверно, вместо этого используйте 'simplexml_load_file()'. Сохраните его сериализован как строка с '$ obj-> asXML();' – michi

ответ

1

Вы можете сохранить объект вместо его сериализованной строки $ xml-> asXML();

//set $_SESSION['xml'] = $xml->asXML(); //get $xml = new SimpleXMLElement($_SESSION['xml']);

+0

Привет, спасибо за ваш ответ. Я не искал asXML, но буду. Однако для будущих читателей (и я) вы имеете в виду команду «serialize()» или isXML() serializ-er? – Cain

+0

asXML больше парсера, который преобразует объект xml в строку, вы можете проверить здесь для получения более подробной информации - http://php.net/manual/en/simplexmlelement.asxml.php – Armen

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