view common-functions.inc @ 6:6c0162497d56

Improved error reporting, and support for multilevel params.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Fri, 20 May 2011 22:28:03 +0200
parents 18aafb1a8986
children 19dfa6f3e2be
line wrap: on
line source

<?php
include_once 'http-response-status-codes.inc';

function loadFile($sFilename, $sCharset = 'UTF-8')
{
    if (floatval(phpversion()) >= 4.3) {
      if (!file_exists($sFilename)) return -3;
      $sData = file_get_contents($sFilename);
    } else {
        if (!file_exists($sFilename)) return -3;
        $rHandle = fopen($sFilename, 'r');
        if (!$rHandle) return -2;

        $sData = '';
        while(!feof($rHandle))
            $sData .= fread($rHandle, filesize($sFilename));
        fclose($rHandle);
    }
    if ($sEncoding = mb_detect_encoding($sData, 'auto', true) != $sCharset) {
       if ($sEncoding != 1) {
       	 $sData = mb_convert_encoding($sData, $sCharset, $sEncoding);
       }
    }
    return $sData;
}

function errorPage($errorText, $errorCode=403)
{
  header(StatusCodes::httpHeaderFor($errorCode));
  print "<div id=\"page\"><h1>${errorText}</h1></div>";
  exit;
}

function genUrl($keys=array()) {
	 $out="?";
	 $first=1;
	 $URL_PARAMS=$GLOBALS['URL_PARAMS'];
	 $new_params=array();
	 foreach($URL_PARAMS as $param) {
		 $new_params[$param]=$GLOBALS[$param];
	 }
	 foreach($keys as $param => $val) {
		 $new_params[$param]=$val;
	 }
	 foreach($new_params as $param => $val) {
	         if($first) 
		   $first=0;
		 else 
		   $out.="&amp;";	     
	 	 $out.=urlencode($param).'='.urlencode($val);
	 }
	 return $out;
}

function getElementByTagName($obj, $name) {
  $elems=$obj->getElementsByTagName($name);
  if ($elems->length != 1) {
    exit;
  }
  $elem=$elems->item(0);
  return $elem;
}
?>