$string keys were supposed to be UPPERCASE but \"$k\" was found; file may be corrupted or in an expected format.
Some SimplePHPBlog files may raise this error: set DUMB_MODE_ENABLED to true in your defaults.php to force parsing of the offending keys.", E_USER_WARNING); */ continue; } $arr[strtolower($k)] = strtok($delim); } return $arr; } /* function utils_newkexplode($string, $delim='|') { $arr = array(); $lastoffset = $offset = 0; $len = strlen($string); while ($lastoffset<$len) { $offset = strpos($string, $delim, $lastoffset); $key = substr($string, $lastoffset, $offset-$lastoffset); //echo 'parsing key: ', $key, $offset, chr(10); $lastoffset = $offset + 1; if (!ctype_upper($key)) trigger_error("Failed parsing \"$string\" keys were supposed to be UPPERCASE", E_USER_ERROR); $offset = strpos($string, $delim, $lastoffset); if ($offset===false) $offset = $len; $val = substr($string, $lastoffset, $offset-$lastoffset); //echo 'parsing value ', $val, $offset, chr(10); $lastoffset = $offset + 1; $arr[$key] = $val; } return $arr; }*/ // function prototype: // array utils_kimplode(string $string, string $delim='|') // explodes a string into an array by the given delimiter; // delimiter defaults to pipe ('|'). // the string must be formatted as in: // key1|value1|key2|value2 , etc. // the array will look like // $arr['key1'] = 'value1'; $arr['key2'] = 'value2'; etc. function utils_kimplode($arr, $delim='|') { $string = ""; foreach ($arr as $k => $val) { if ($val) $string .= strtoupper($k) . $delim . ($val) . $delim; } return $string; } /** * @todo send mail to admin */ function &utils_explode_recursive($array, &$string, $rdelim, $ldelim='', $outerldelim='', $outerrdelim='') { $string .= $outerldelim; while (list(,$val) = each($array)) { $string .= $rdelim; if (is_array($val)) { $string .= utils_explode_recursive($val, $string, $rdelim, $ldelim, $outerldelim, $outerrdelim); } else { $string .= $val; } $string .= $ldelim; } $string .= $outerrdelim; } function utils_validateinput($str) { if (preg_match('/[^a-z0-9\-_]/i',$str)){ trigger_error("String \"$str\" is not a valid input", E_USER_ERROR); //return false; } else return true; } function utils_cut_string($str,$maxc) { $car = strlen($str); if($car > $maxc) { return substr($str, 0, $maxc)."..."; } else { return $str; } } function utils_status_header($status) { switch ($status) { case 301: header("HTTP/1.1 301 Moved Permanently"); break; case 403: header("HTTP/1.1 403 Forbidden"); break; case 404: header("HTTP/1.1 404 Not Found"); break; } } // code from php.net ;) // defaults to index.php ;) function utils_redirect($location="", $absolute_path=false, $red_type=null) { if (!$absolute_path) $location = BLOG_BASEURL . $location; if ( function_exists('wp_redirect') ) { wp_redirect($location); } else { header("Location: $location"); } exit(); } /* * utils_geturlstring() * * @return string complete url string as displayed in the browser * */ function utils_geturlstring() { $str = BLOG_BASEURL . $_SERVER['PHP_SELF']; if ($_SERVER['QUERY_STRING']) $str .='?'.$_SERVER['QUERY_STRING']; return $str; } // custom array_merge: // pads the second array to match the length of the first // this can be improved, anyway for now I'd just // do a quick & dirty solution :) function utils_array_merge($arr1, $arr2) { $len=count($arr1[0]); foreach($arr2 as $k=>$v) $arr2[$k]=array_pad((Array) $v, $len, null); return array_merge($arr1, $arr2); } /* * Simple function to replicate PHP 5 behaviour */ function utils_microtime() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } function utils_countdashes($string, &$rest) { trim($string); $i = 0; while ($string{$i} == '-') { $i++; } if ($i) $rest = substr($string, $i); else $rest = $string; return $i; } function utils_mail($from, $subject, $message, $headers = '') { global $fp_config; if( $headers == '' ) { $headers = "MIME-Version: 1.0\n" . "From: " . $from . "\n" . "Content-Type: text/plain; charset=\"" . $fp_config['general']['charset'] . "\"\n"; } return mail($fp_config['general']['email'], $subject, $message, $headers); } /* * props: http://crisp.tweakblogs.net/blog/2031 */ function utils_validateIPv4($IP) { return $IP == long2ip(ip2long($IP)); } function utils_validateIPv6($IP) { // fast exit for localhost if (strlen($IP) < 3) return $IP == '::'; // Check if part is in IPv4 format if (strpos($IP, '.')) { $lastcolon = strrpos($IP, ':'); if (!($lastcolon && validateIPv4(substr($IP, $lastcolon + 1)))) return false; // replace IPv4 part with dummy $IP = substr($IP, 0, $lastcolon) . ':0:0'; } // check uncompressed if (strpos($IP, '::') === false) { return preg_match('/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i', $IP); } // check colon-count for compressed format if (substr_count($IP, ':') < 8) { return preg_match('/^(?::|(?:[a-f0-9]{1,4}:)+):(?:(?:[a-f0-9]{1,4}:)*[a-f0-9]{1,4})?$/i', $IP); } return false; } // get client IP function utils_ipget() { $ip = ''; if ( !empty ( $_SERVER[ 'HTTP_CLIENT_IP' ] ) ) { $ip = $_SERVER[ 'HTTP_CLIENT_IP' ]; } elseif ( !empty ( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) ) { $ip = $_SERVER[ 'HTTP_X_FORWARDED_FOR' ]; } elseif ( !empty ( $_SERVER[ 'REMOTE_ADDR' ] ) ) { $ip = $_SERVER[ 'REMOTE_ADDR' ]; } elseif ( getenv( "HTTP_CLIENT_IP" ) ) { $ip = getenv( "HTTP_CLIENT_IP" ); } elseif ( getenv( "HTTP_X_FORWARDED_FOR" ) ) { $ip = getenv( "HTTP_X_FORWARDED_FOR" ); } elseif ( getenv( "REMOTE_ADDR") ) { $ip = getenv( "REMOTE_ADDR" ); } if (utils_validateIPv4($ip) || utils_validateIPv6($ip)) { return $ip; } else { return ''; } } function utils_nocache_headers() { @ header('Expires: Wed, 11 Jan 1984 05:00:00 GMT'); @ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); @ header('Cache-Control: no-cache, must-revalidate, max-age=0'); @ header('Pragma: no-cache'); } // from http://nadeausoftware.com/articles/2007/06/php_tip_how_get_web_page_using_curl // code under OSI BSD /** * Get a web file (HTML, XHTML, XML, image, etc.) from a URL. Return an * array containing the HTTP server response header fields and content. */ function utils_geturl($url) { /* if (ini_get('allow_url_fopen')) { return array('content' => io_load_file($url)); } */ if (!function_exists('curl_init')) { trigger_error('curl extension is not installed'); return array(); } $options = array( CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => false, // don't return headers CURLOPT_FOLLOWLOCATION => false, // don't follow redirects CURLOPT_ENCODING => "", // handle all encodings CURLOPT_USERAGENT => "spider", // who am i CURLOPT_AUTOREFERER => true, // set referer on redirect CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect CURLOPT_TIMEOUT => 120, // timeout on response CURLOPT_MAXREDIRS => 10, // stop after 10 redirects ); $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $content = curl_exec( $ch ); $err = curl_errno( $ch ); $errmsg = curl_error( $ch ); $header = curl_getinfo( $ch ); curl_close( $ch ); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; } function utils_checksmarty() { if (!file_exists(SMARTY_DIR . 'Smarty.class.php')) { $err = <<http://smarty.php.net; you will probably need SmartyValidate as well; unpack them to fp-includes/core/smarty: please do not overwrite files in fp-includes/core/smarty/plugins/ ERR; trigger_error($err, E_USER_ERROR); } } function fplog($str) { if(!defined('DEBUG_MODE')) echo "\n[DEBUG] $str \n"; } ?>