'Serialization of 'SimpleXMLElement' i

2019-06-23 15:36发布

问题:

This question already has an answer here:

  • Forcing a SimpleXML Object to a string, regardless of context 10 answers

Hi all I have a site developed in codeigniter. I'm parsing an xml that I retrieve from a server and I want to put the return value into a session variable. But return me this error:

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

My PHP version on my vps is: PHP Version 5.3.10-1ubuntu3.4

This is my code:

$xml = new SimpleXMLElement(curl_exec($ch2));
$error2=curl_getinfo( $ch2, CURLINFO_HTTP_CODE );
curl_close($ch2);
foreach ($xml->DATA as $entry){
    $code_travco = $entry->attributes()->COUNTRY_CODE;
    $name_en =  $entry->COUNTRY_NAME;
    $newdata = array(
        'code'  => $code_travco,
        'name_en'     =>  $name_en
    );
    $this->session->set_userdata($code_travco.'_nation_en', $newdata);      
 } 

回答1:

may be try changing it to string before adding, like:

foreach ($xml->DATA as $entry){
    $code_travco = (string) $entry->attributes()->COUNTRY_CODE;
    $name_en =  (string) $entry->COUNTRY_NAME;
    $newdata = array(
        'code'  => $code_travco,
        'name_en'     =>  $name_en
    );
    $this->session->set_userdata($code_travco.'_nation_en', $newdata);      
 }