$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[$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 .= $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;
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);
}
// get client IP
function utils_ipget() {
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" );
}
else {
$ip = "UNKNOWN";
}
return( $ip );
}
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');
}
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";
}
?>