API15

JRegistryFormatINI/objectToString: Difference between revisions

From Joomla! Documentation

m removing red link to edit, no existant pages
m preparing for archive only
 
Line 95: Line 95:


===Examples===
===Examples===
<CodeExamplesForm />
=== Code Examples ===
<dpl>
<dpl>
  noresultsheader=\n
  noresultsheader=\n
  category=objectToString
  category=objectToString
  category=JRegistryFormatINI
  category=JRegistryFormatINI
  category=CodeExample
  namespace=CodeExample
  category=MethodExample
  category=MethodExample
  include=*
  include=*

Latest revision as of 01:04, 25 March 2017

Description

Converts an object into an INI formatted string Unfortunately, there is no way to have ini values nested further than two levels deep. Therefore we will only go through the first two levels of the object.


[<! removed edit link to red link >]

<! removed transcluded page call, red link never existed >

Syntax

objectToString(&$object, $params)
Parameter Name Default Value Description
&$object $object Data Source Object
$params $param Parameters used by the formatter

Returns

string INI Formatted String

Defined in

libraries/joomla/registry/format/ini.php

Importing

jimport( 'joomla.registry.format.ini' );

Source Body

function objectToString( &$object, $params )
{

        // Initialize variables
        $retval = '';
        $prepend = '';

        // First handle groups (or first level key/value pairs)
        foreach (get_object_vars( $object ) as $key => $level1)
        {
                if (is_object($level1))
                {
                        // This field is an object, so we treat it as a section
                        $retval .= "[".$key."]\n";
                        foreach (get_object_vars($level1) as $key => $level2)
                        {
                                if (!is_object($level2) && !is_array($level2))
                                {
                                        // Join lines
                                        $level2         = str_replace('|', '\|', $level2);
                                        $level2         = str_replace(array("\r\n", "\n"), '\\n', $level2);
                                        $retval         .= $key."=".$level2."\n";
                                }
                        }
                        $retval .= "\n";
                }
                elseif (is_array($level1))
                {
                        foreach ($level1 as $k1 => $v1)
                        {
                                // Escape any pipe characters before storing
                                $level1[$k1]    = str_replace('|', '\|', $v1);
                                $level1[$k1]    = str_replace(array("\r\n", "\n"), '\\n', $v1);
                        }

                        // Implode the array to store
                        $prepend        .= $key."=".implode('|', $level1)."\n";
                }
                else
                {
                        // Join lines
                        $level1         = str_replace('|', '\|', $level1);
                        $level1         = str_replace(array("\r\n", "\n"), '\\n', $level1);
                        $prepend        .= $key."=".$level1."\n";
                }
        }

        return $prepend."\n".$retval;
}

[<! removed edit link to red link >] <! removed transcluded page call, red link never existed >

Examples

Code Examples