Version 0.9.1
<?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");
}
?>