* created: 2006-05-24 09:37:53
* last modify: (GTM+8)2006-05-25 10:58:51
*/
if (!defined('NIE')) exit;
function abort($code = -1)
{
$messages = array(
0 => '未知错误',
1 => '没有指定文件',
2 => '没有找到指定的文件'
);
if (isset($messages[$code]))
echo $messages[$code];
exit;
}
function filename_to_key($filename)
{
$key = unpack('h*', $filename);
reset ($key);
$key = current($key);
return $key;
}
function key_to_filename($key)
{
return trim(pack('h*', $key));
}
function counter_increase($key, $counter)
{
$counter[$key] = isset($counter[$key]) ? ($counter[$key] + 1) : 1 ;
return $counter;
}
function counter_fetch($filename)
{
$lines = file($filename);
$counter = array();
if ($lines === false) return $counter;
while (list($idx, $line) = each($lines))
{
$line = trim($line);
if (preg_match('/\|\d{1,}$/', $line))
{
$_tmp = explode('|', $line);
$key = filename_to_key($_tmp[0]);
$value = & $_tmp[1];
$counter[$key] = $value;
unset($_tmp);
}
}
return $counter;
}
function counter_store($counter)
{
if (!is_array($counter)) return false;
$output = counter_to_string($counter);
if ($fp = fopen(DB_FILE, 'wb'))
{
if (flock($fp, LOCK_EX))
{
fwrite($fp, $output);
flock ($fp, LOCK_UN);
}
fclose($fp);
return true;
}
else return false;
}
function counter_to_string($counter)
{
while (list($key, $val) = each($counter))
{
$counter[$key] = key_to_filename($key) . '|' . $val;
}
$counter = join("\r\n", $counter);
return $counter;
}
function goto ($url)
{
if(!headers_sent()){
header ('Location: '.$url);
}else{
echo "";
}
exit;
}
function httpvar_process($object = null)
{
$object = strtoupper($object);
$param = array();
$variable = array();
for ($i = 0, $_size = strlen($object); $i < $_size; $i ++)
{
switch ($object{$i})
{
case 'C':
$param[] = & $_COOKIE;
break;
case 'G':
$param[] = & $_GET;
break;
case 'P':
$param[] = & $_POST;
break;
}
}
switch (count($param))
{
case 1:
$variable = $param[0];
break;
case 2:
if (!is_array($param[0])) $param[0] = array();
if (!is_array($param[1])) $param[1] = array();
$variable = array_merge($param[0], $param[1]);
break;
case 3:
if (!is_array($param[0])) $param[0] = array();
if (!is_array($param[1])) $param[1] = array();
if (!is_array($param[2])) $param[2] = array();
$variable = array_merge($param[0], $param[1], $param[2]);
break;
}
return httpvar_filter($variable);
}
function httpvar_filter($object = null)
{
$filtered = & $object;
if (empty($object)) return;
if (!get_magic_quotes_gpc())
{
foreach ($object as $key => $val)
{
if (is_array($val)) $filtered[$key] = httpvar_filter($val);
else $filtered[$key] = addslashes($val);
}
}
return $filtered;
}
?>