Simple xml2array that PRESERVES HTML

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
lwc
Forum Commoner
Posts: 35
Joined: Thu Jan 11, 2007 11:04 am

Simple xml2array that PRESERVES HTML

Post by lwc »

The following code is relatively short, but censors any HTML tags inside the XML:

Code: Select all

function object2array($object) // from php.net 
{  
    $return = NULL;  
        
    if(is_array($object))  
    {  
        foreach($object as $key => $value)  
            $return[$key] = object2array($value);  
    }  
    else  
    {  
        $var = get_object_vars($object);  
            
        if($var)  
        {  
            foreach($var as $key => $value)  
                $return[$key] = ($key && !$value) ? NULL : object2array($value);  
        }  
        else return $object;  
    }  

    return $return;  
} 

$bla=simplexml_load_file($xml_file); 
$bla=object2array($bla);
This one keeps HTML but turns everything into one giant string:

Code: Select all

$bla=$bla->asXML();
So how can I easily preserve HTML? But better yet, can I somehow just tell PHP which tags to convert? For example, only <this> and <that> in:

Code: Select all

<this>
  <that>Text <foo>and</foo> test and <whatever>something</whatever>.</that>
</this>
thus creating:

Code: Select all

Array
(
    [this] => Array
            [0] => Array
                (
                    [that] => Text <foo>and</foo> test and <whatever>something</whatever>.
                 )

}
Post Reply