-1

XML オブジェクトを PHP セッションに保存する必要があります。どうやらこれは不可能です。そのため、オブジェクトを文字列と配列に変換してから単純な XML オブジェクトに戻そうとしましたが、何を試してもうまくいかないようです。var_dump() が以下に示すように、空のオブジェクトが返されます。誰でも助けることができます。

$messages = $this->Message->getAll('50');  //this functions brings back a simplexml object
$_SESSION['messages'] =  $messages->asXML();  //doesn't work            
var_dump($messages);


array(50) {
  [0]=>
  object(SimpleXMLElement)#5 (0) {
  }
  [1]=>
  object(SimpleXMLElement)#6 (0) {
  }
  [2]=>
  object(SimpleXMLElement)#7 (0) {
  }
  [3]=>
  object(SimpleXMLElement)#8 (0) {
  }
  [4]=>
  object(SimpleXMLElement)#9 (0) {
  }
  [5]=>
  object(SimpleXMLElement)#10 (0) {
  }
  [6]=>
  object(SimpleXMLElement)#11 (0) {
  }
  [7]=>
  object(SimpleXMLElement)#12 (0) {
  }
  [8]=>
  object(SimpleXMLElement)#13 (0) {
  }
  [9]=>
  object(SimpleXMLElement)#14 (0) {
  }
  [10]=>
  object(SimpleXMLElement)#15 (0) {
  }
  [11]=>
  object(SimpleXMLElement)#16 (0) {
  }
  [12]=>
  object(SimpleXMLElement)#17 (0) {
  }
  [13]=>
  object(SimpleXMLElement)#18 (0) {
  }
  [14]=>
  object(SimpleXMLElement)#19 (0) {
  }
  [15]=>
  object(SimpleXMLElement)#20 (0) {
  }
  [16]=>
  object(SimpleXMLElement)#21 (0) {
  }
  [17]=>
  object(SimpleXMLElement)#22 (0) {
  }
  [18]=>
  object(SimpleXMLElement)#23 (0) {
  }
  [19]=>
  object(SimpleXMLElement)#24 (0) {
  }
  [20]=>
  object(SimpleXMLElement)#25 (0) {
  }
  [21]=>
  object(SimpleXMLElement)#26 (0) {
  }
  [22]=>
  object(SimpleXMLElement)#27 (0) {
  }
  [23]=>
  object(SimpleXMLElement)#28 (0) {
  }
  [24]=>
  object(SimpleXMLElement)#29 (0) {
  }
  [25]=>
  object(SimpleXMLElement)#30 (0) {
  }
  [26]=>
  object(SimpleXMLElement)#31 (0) {
  }
  [27]=>
  object(SimpleXMLElement)#32 (0) {
  }
  [28]=>
  object(SimpleXMLElement)#33 (0) {
  }
  [29]=>
  object(SimpleXMLElement)#34 (0) {
  }
  [30]=>
  object(SimpleXMLElement)#35 (0) {
  }
  [31]=>
  object(SimpleXMLElement)#36 (0) {
  }
  [32]=>
  object(SimpleXMLElement)#37 (0) {
  }
  [33]=>
  object(SimpleXMLElement)#38 (0) {
  }
  [34]=>
  object(SimpleXMLElement)#39 (0) {
  }
  [35]=>
  object(SimpleXMLElement)#40 (0) {
  }
  [36]=>
  object(SimpleXMLElement)#41 (0) {
  }
  [37]=>
  object(SimpleXMLElement)#42 (0) {
  }
  [38]=>
  object(SimpleXMLElement)#43 (0) {
  }
  [39]=>
  object(SimpleXMLElement)#44 (0) {
  }
  [40]=>
  object(SimpleXMLElement)#45 (0) {
  }
  [41]=>
  object(SimpleXMLElement)#46 (0) {
  }
  [42]=>
  object(SimpleXMLElement)#47 (0) {
  }
  [43]=>
  object(SimpleXMLElement)#48 (0) {
  }
  [44]=>
  object(SimpleXMLElement)#49 (0) {
  }
  [45]=>
  object(SimpleXMLElement)#50 (0) {
  }
  [46]=>
  object(SimpleXMLElement)#51 (0) {
  }
  [47]=>
  object(SimpleXMLElement)#52 (0) {
  }
  [48]=>
  object(SimpleXMLElement)#53 (0) {
  }
  [49]=>
  object(SimpleXMLElement)#54 (0) {
  }
4

3 に答える 3

3

完全なxmlを文字列としてセッション変数に保存するだけです...

$_SESSION['theXml'] = $xmlObject->asXML();

そして回収する

$xmlObject = new SimpleXMLElement($_SESSION['theXml']);

または、質問を理解していません..?

于 2012-09-06T12:10:14.543 に答える
0

シリアル化されたバージョンを保存する

$var->asXML();

セッションからオブジェクトを取得したら、XML 文字列を使用してオブジェクトを再構築します。

于 2012-09-06T12:09:49.440 に答える
-1

http://php.net/serialize関数を試しましたか?

于 2012-09-06T12:10:07.907 に答える