$sValue2) { $paArray1[$sKey2] = array_merge_recursive2( getArrayValue($paArray1,$sKey2), $sValue2); } return $paArray1; } } /** * @return int * @param $array array * @param $value mixed * @desc Prepend a reference to an element to the beginning of an array. Renumbers numeric keys, so $value is always inserted to $array[0] */ function array_unshift_ref(&$array, &$value) { $return = array_unshift($array,''); $array[0] =& $value; return $return; } if (!function_exists('print_pre')) { /** * Same as print_r, budet designed for viewing in web page * * @param Array $data * @param string $label */ function print_pre($data, $label='') { if( constOn('DEBUG_MODE') ) { global $debugger; if($label) $debugger->appendHTML(''.$label.''); $debugger->dumpVars($data); } else { if($label) echo '',$label,'
'; echo '
',print_r($data,true),'
'; } } } if (!function_exists('getArrayValue')) { /** * Returns array value if key exists * * @param Array $array searchable array * @param int $key array key * @return string * @access public */ // function getArrayValue(&$array,$key) { $ret = isset($array[$key]) ? $array[$key] : false; if ($ret && func_num_args() > 2) { for ($i = 2; $i < func_num_args(); $i++) { $cur_key = func_get_arg($i); $ret = getArrayValue( $ret, $cur_key ); if ($ret === false) break; } } return $ret; } } /** * Rename key in associative array, maintaining keys order * * @param Array $array Associative Array * @param mixed $old Old key name * @param mixed $new New key name * @access public */ function array_rename_key(&$array, $old, $new) { foreach ($array as $key => $val) { $new_array[ $key == $old ? $new : $key] = $val; } $array = $new_array; } if( !function_exists('safeDefine') ) { /** * Define constant if it was not already defined before * * @param string $const_name * @param string $const_value * @access public */ function safeDefine($const_name, $const_value) { if(!defined($const_name)) define($const_name,$const_value); } } if( !function_exists('parse_portal_ini') ) { function parse_portal_ini($file, $parse_section = false) { if (!file_exists($file)) return false; if( file_exists($file) && !is_readable($file) ) die('Could Not Open Ini File'); $contents = file($file); $retval = Array(); $section = ''; $ln = 1; $resave = false; foreach($contents as $line) { if ($ln == 1 && $line != '<'.'?'.'php die() ?'.">\n") { $resave = true; } $ln++; $line = trim($line); $line = eregi_replace(';[.]*','',$line); if(strlen($line) > 0) { //echo $line . " - "; if(eregi('^[[a-z]+]$',str_replace(' ', '', $line))) { //echo 'section'; $section = substr($line,1,(strlen($line)-2)); if ($parse_section) { $retval[$section] = array(); } continue; } elseif(eregi('=',$line)) { //echo 'main element'; list($key,$val) = explode(' = ',$line); if (!$parse_section) { $retval[trim($key)] = str_replace('"', '', $val); } else { $retval[$section][trim($key)] = str_replace('"', '', $val); } } //end if //echo '
'; } //end if } //end foreach if($resave) { $fp = fopen($file, 'w'); reset($contents); fwrite($fp,'<'.'?'.'php die() ?'.">\n\n"); foreach($contents as $line) fwrite($fp,"$line"); fclose($fp); } return $retval; } } if( !function_exists('getmicrotime') ) { function getmicrotime() { list($usec, $sec) = explode(" ",microtime()); return ((float)$usec + (float)$sec); } } if( !function_exists('k4_include_once') ) { function k4_include_once($file) { if ( constOn('DEBUG_MODE') && isset($debugger) && constOn('DBG_PROFILE_INCLUDES') ) { if ( in_array($file, get_required_files()) ) return; global $debugger; $debugger->IncludeLevel++; $before_time = getmicrotime(); $before_mem = memory_get_usage(); include_once($file); $used_time = getmicrotime() - $before_time; $used_mem = memory_get_usage() - $before_mem; $debugger->IncludeLevel--; $debugger->IncludesData['file'][] = str_replace(FULL_PATH, '', $file); $debugger->IncludesData['mem'][] = $used_mem; $debugger->IncludesData['time'][] = $used_time; $debugger->IncludesData['level'][] = $debugger->IncludeLevel; } else { include_once($file); } } } /** * Checks if string passed is serialized array * * @param string $string * @return bool */ function IsSerialized($string) { if( is_array($string) ) return false; return preg_match('/a:([\d]+):{/', $string); } if (!function_exists('makepassword4')){ function makepassword4($length=10) { $pass_length=$length; $p1=array('b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'); $p2=array('a','e','i','o','u'); $p3=array('1','2','3','4','5','6','7','8','9'); $p4=array('(','&',')',';','%'); // if you need real strong stuff // how much elements in the array // can be done with a array count but counting once here is faster $s1=21;// this is the count of $p1 $s2=5; // this is the count of $p2 $s3=9; // this is the count of $p3 $s4=5; // this is the count of $p4 // possible readable combinations $c1='121'; // will be like 'bab' $c2='212'; // will be like 'aba' $c3='12'; // will be like 'ab' $c4='3'; // will be just a number '1 to 9' if you dont like number delete the 3 // $c5='4'; // uncomment to active the strong stuff $comb='4'; // the amount of combinations you made above (and did not comment out) for ($p=0;$p<$pass_length;) { mt_srand((double)microtime()*1000000); $strpart=mt_rand(1,$comb); // checking if the stringpart is not the same as the previous one if($strpart<>$previous) { $pass_structure.=${'c'.$strpart}; // shortcutting the loop a bit $p=$p+strlen(${'c'.$strpart}); } $previous=$strpart; } // generating the password from the structure defined in $pass_structure for ($g=0;$g $value) $params_str .= $key.'='.urlencode($value).'&'; $post = $params_str; } $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_REFERER, PROTOCOL.SERVER_NAME); curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']); curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 0); $ret = curl_exec($ch); curl_close($ch); return $ret; } } if( !function_exists('memory_get_usage') ) { function memory_get_usage(){ return -1; } } function &ref_call_user_func_array($callable, $args) { if( is_scalar($callable) ) { // $callable is the name of a function $call = $callable; } else { if( is_object($callable[0]) ) { // $callable is an object and a method name $call = "\$callable[0]->{$callable[1]}"; } else { // $callable is a class name and a static method $call = "{$callable[0]}::{$callable[1]}"; } } // Note because the keys in $args might be strings // we do this in a slightly round about way. $argumentString = Array(); $argumentKeys = array_keys($args); foreach($argumentKeys as $argK) { $argumentString[] = "\$args[$argumentKeys[$argK]]"; } $argumentString = implode($argumentString, ', '); // Note also that eval doesn't return references, so we // work around it in this way... eval("\$result =& {$call}({$argumentString});"); return $result; } if( !function_exists('constOn') ) { /** * Checks if constant is defined and has positive value * * @param string $const_name * @return bool */ function constOn($const_name) { return defined($const_name) && constant($const_name); } } ?>