Add "arg" function for parsing http (or other) parameters
This commit is contained in:
parent
b0c912a300
commit
5022d34c28
61
base.php
61
base.php
|
@ -75,6 +75,67 @@ function no_http() {
|
||||||
die('<h3>Forbidden, this method can only be called from shell</h3>');
|
die('<h3>Forbidden, this method can only be called from shell</h3>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function arg($arg, $default=null, $validator=null) {
|
||||||
|
$arg = trim($arg);
|
||||||
|
$type = 'string';
|
||||||
|
|
||||||
|
$require = false;
|
||||||
|
if (strpos($arg,'*') === 0) {
|
||||||
|
$require = true;
|
||||||
|
$arg = substr($arg, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($arg,'s:') === 0) {
|
||||||
|
$type = 'string';
|
||||||
|
$arg = substr($arg, 2);
|
||||||
|
} else if (strpos($arg,'i:') === 0) {
|
||||||
|
$type = 'integer';
|
||||||
|
$arg = substr($arg, 2);
|
||||||
|
} else if (strpos($arg,'d:') === 0) {
|
||||||
|
$type = 'double';
|
||||||
|
$arg = substr($arg, 2);
|
||||||
|
} else if (strpos($arg,'b64:') === 0) {
|
||||||
|
$type = 'base64';
|
||||||
|
$arg = substr($arg, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
$ps = explode('.', $arg);
|
||||||
|
$value = null;
|
||||||
|
$arr = null;
|
||||||
|
switch (strtolower($ps[0])) {
|
||||||
|
case 'get':
|
||||||
|
$arr = '_GET';
|
||||||
|
break;
|
||||||
|
case 'post':
|
||||||
|
$arr = '_POST';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($arr === null)
|
||||||
|
$arr = $ps[0];
|
||||||
|
eval('$value = isset($'.$arr.'["'.$ps[1].'"]) ? $'.$arr.'["'.$ps[1].'"] : null;');
|
||||||
|
if ($value === null)
|
||||||
|
return !$require ? $default : apiresult(['error' => '<'.$arg.'> parameter must be specified'], 400);
|
||||||
|
|
||||||
|
$value = trim($value);
|
||||||
|
if ($type === 'string')
|
||||||
|
$value = strval($value);
|
||||||
|
else if ($type === 'integer')
|
||||||
|
$value = intval($value);
|
||||||
|
else if ($type === 'double')
|
||||||
|
$value = doubleval($value);
|
||||||
|
else if ($type === 'base64')
|
||||||
|
$value = base64_decode($value);
|
||||||
|
|
||||||
|
if ($validator !== null) {
|
||||||
|
$bool = false;
|
||||||
|
eval('$bool = '.$validator.'($value);');
|
||||||
|
if (!$bool)
|
||||||
|
return apiresult(['error' => '<'.$arg.'> parameter validation has failed'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
function mod_php($module_name=null) {
|
function mod_php($module_name=null) {
|
||||||
$null_mod = false;
|
$null_mod = false;
|
||||||
if ($module_name === null) {
|
if ($module_name === null) {
|
||||||
|
|
Loading…
Reference in New Issue