All pastes #429777 Raw Edit

Someone

public php v1 · immutable
·published 2007-04-08 13:08 UTC
rendered paste body
<?php/** * Make sure the function is not already defined. * */if ( ! function_exists('array_to_php') ){	/**	 * Builds the php code (keyed, escaped and nested) for a php array for caching or data storage	 *	 * @param	array	$a			The array of data to translate	 * @param	bool	$self_call	Is this function being called by itself?	 * @param	integer	$nest_level	The current nesting level of the function	 *	 * @author	Dean Newman <webmaster@auscoder.com>	 * @example	echo '<pre>' . array_to_php( array(1 => array(1,2,3),2,3,4) ) . '</pre>';	 * @return	string	The final result (php code)	 */	function array_to_php ( $a, $self_call = false, $nest_level = 1 )	{		// Set initial string		$str = 'array(';				// Declare key counter		$i = 0;				// Reset to start of array		reset ( $a );				// Increase nesting level on self-call		if ( $self_call )		{			$nest_level++;		}			// Assign the tabs for each level in		$tab = '';		for ( $i = 0 ; $i < $nest_level ; $i++ )		{			$tab .= "\t";		}			// Loop though the array building php code		$i = 0;		while ( list ( $key, $value ) = @each ( $a ) )		{			// Check if the value is an array			if ( is_array ( $value ) )			{				// The value is an array, do a self-call				$str .=  "\n$tab'$key' => " . array_to_php($value, true, $nest_level);			}			else			{				// The value is not an array, do escaping				$key = str_replace('\\', '\\\\', $key);				$key = str_replace('\'', '\\\'', $key);				$value = str_replace('\\', '\\\\', $value);				$value = str_replace('\'', '\\\'', $value);								// Generate the code				$str .= "\n$tab'$key' => '$value'";			}						// Seperator			if ( $i < (sizeof($a) - 1) )			{				$str .= ',';			}						// Increase counter			$i++;		}			// Ending bracket for self-call		if ( $self_call )		{			// 1 tab must be removed for clean code			$s_tab = substr ( $tab, 0, ( strlen ( $tab ) - 1 ) );						// Create array end bracket			$str .= "\n$s_tab)";		}		else		{			// End array as normal			$str .= "\n)";		}				// Return the generated php code		return $str;	}}?>