Version 0.9.1

Datei 'www/.include/php_scripts.php' Zurück zur Übersicht
<?php
/*
* extract string
* Extrahiert einen String
* $str
*	Die Eingabezeichenkette. Muss mindestens ein Zeichen lang sein. 
* $start
* 	
* $stop
* 
* $occurrence
* 
* 	
* $test = 'Ich suche einen <b>String</b> innerhalb <b>diesen</b> Textes';
* echo extstr($test, '<b>', '</b>', 1); //=> diesen
*/
function extstr($str, $start, $stop, $occurrence = 0) {
	$i = 0;
	do {
		$posStart = stripos($str, $start, $posEnd);
		$posEnd = stripos($str, $stop, $posStart);
		if($posStart === false || $posEnd === false) return false;
	} while ($i++ < $occurrence);
	
    if($posStart === false || $posEnd === false) return '';
	return substr($str, $posStart+strlen($start), $posEnd - $posStart-strlen($start));
}

function any2json($val) {
	if(is_numeric($val) || (substr($val,0,1) == '{' && substr($val,-1) == '}') || (substr($val,0,1) == '[' && substr($val,-1) == ']')  ) {
		return $val;
	} elseif (is_array($val)) {
		return arr2json($val);
	} elseif (get_class($val) == "SQL") {
		return '"'. str2json($val .'') .'"';
	} elseif (is_object($val)) {
		return obj2json($val);
	} elseif (is_bool($val)) {
		$b = ($val) ? 1 : 0; 
		return $b;
	} else {
		return '"'. str2json($val) .'"';
	}
}

function str2json($str) {
	$str = str_replace('\\','\\\\',$str);
	$str = str_replace("\t",'\t',$str);
	$str = str_replace("\n",'\n',$str);
	$str = str_replace("\r",'',$str);
	$str = str_replace('"','\"',$str);
	return $str;
}

function obj2json($obj) {
	if(is_array($obj)) {
	    $out .= '"'. arr2json($val) .'"';
	} elseif(is_object($obj)) {
		$out = '';
		foreach($obj as $key => $val) {
			if($out != '') {
				$out .= ',';
			}
			
			if(is_array($val) || is_object($val)) {
			    $out .= '"'. $key .'":'. any2json($val);
			} else {
			    $out .= '"'. $key .'":"'. str2json($val) .'"';
			}
			
		}
		return '{'. $out .'}';
	} else {
		return str2json($obj);
	}
}

function nobj2json($obj) {
    $h = '';
    foreach($obj as $key => $val) {
        $h .= '"'. $key .'":'. any2json($val) .',';
    }
    return '{'. substr($h,0,-1) .'}';
}

function arr2json($arr) {
    $c = '';
    foreach($arr as $key => $val) {
        $c .= (gettype($val) == 'object') ? nobj2json($val) .',' : any2json($val) .',';
    }
    return '['. substr($c,0,-1) .']';
}

//object for any get (aGET, ect);
class oGET {
	//TO_STRING
	public function __toString() {
		return $this->val;
	}
}

/*
* $key
* $type
* $val (must be filled when on shell)
* ->type = 
* ->isset = 1 if param exists and has a value set
* ->exists = boolean if param exists
* ->len = 1 Length
* ->val = normal value
* ->valdb = prepared to be inserted as String into db (mysql) (in single quotes)
* ->valdbn = valdb + null allowed
* ->valdbtype = (1|2)
* ->valupper
* ->vallower
* ->valint
* ->valdouble
* ->valhtml = html specials escaped
* ->valjson = json escaped characters
*/
function sPARAM($key, $type) {
	global $mysqli;
	global $argv;
	$out = new oGET();
	$out->isset = false;
	$out->exists = false;
	$out->len = 0;
	$out->valdb = "''";
	$out->valdbn = "NULL";
	
	if($type == "ARG") {
	    if(isset($argv[$key])) {
    	    $out->type = 0;
    		$out->exists = true;
    		$get = trim($argv[$key]);
	    }
	} elseif($type == "GET") {
		if(isset($_GET[$key])) {
			$out->type = 1;
			$out->exists = true;
			$get = trim($_GET[$key]);
		}
	} else {
		if(isset($_POST[$key])) {
			$out->type = 2;
			$out->exists = true;
			$get = trim($_POST[$key]);
		}
	}
	$out->fieldname = $key;
	if($out->exists && $get) { $out->isset = 1; $out->len = strlen($get); $out->ok = 1; }
	
	if(isset($mysqli)) {
		$con = $mysqli['CURRENT'];
		$out->valdb = mysqli_real_escape_string($con,$get);
		$out->valdbl = "'%". $out->valdb ."%'";
		$out->valdb = "'". $out->valdb ."'";
		$out->valdbtype = 1;
	} else {
		//$out->valdb = mysql_real_escape_string($get);
		$out->valdbl = "'%". $out->valdb ."%'";
		$out->valdb = "'". $out->valdb ."'";
		$out->valdbtype = 2;
	}
	
	if($out->valdb == "''" || $get == 'NULL') {
		$out->valdbn = "NULL";
	} else {
		$out->valdbn = $out->valdb;
	}
	
	$out->val = $get;
	$out->valupper = strtoupper($get);
	$out->vallower = strtolower($get);
	$out->valint = intval($get);
	$out->valdouble = doubleval($get);
	$out->valhtml = htmlspecialchars($get);
	$out->valjson = str2json($get);
	
	return $out;
}

//sPARAM with ARG-param
function oARG($arg) {
	return sPARAM($arg, "ARG");
}

//sPARAM with GET-param
function oGET($key) {
	return sPARAM($key, "GET");
}

//sPARAM with POST-param
function oPOST($key) {
	return sPARAM($key, "POST");
}

//sPARAM with POST-param OR GET-param
function aGET($key, $arg = null) {
    global $argv;
    if(isset($argv) && isset($arg) && isset($argv[$arg])) return sPARAM($arg, "ARG");
	if(isset($_POST[$key]))	return sPARAM($key, "POST");
	return sPARAM($key, "GET");
}
?>