73 lines
2.4 KiB
PHP
73 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Component\Models;
|
|
|
|
class Base
|
|
{
|
|
public static function tofloat($num) {
|
|
$dotPos = strrpos($num, '.');
|
|
$commaPos = strrpos($num, ',');
|
|
$sep = (($dotPos > $commaPos) && $dotPos) ? $dotPos :
|
|
((($commaPos > $dotPos) && $commaPos) ? $commaPos : false);
|
|
|
|
if (!$sep) {
|
|
return floatval(preg_replace("/[^0-9]/", "", $num));
|
|
}
|
|
|
|
return floatval(
|
|
preg_replace("/[^0-9]/", "", substr($num, 0, $sep)) . '.' .
|
|
preg_replace("/[^0-9]/", "", substr($num, $sep+1, strlen($num)))
|
|
);
|
|
}
|
|
|
|
public static function validate_json($string)
|
|
{
|
|
// decode the JSON data
|
|
$result = json_decode(utf8_encode($string), true, JSON_INVALID_UTF8_SUBSTITUTE);
|
|
|
|
// switch and check possible JSON errors
|
|
switch (json_last_error()) {
|
|
case JSON_ERROR_NONE:
|
|
$error = ''; // JSON is valid // No error has occurred
|
|
break;
|
|
case JSON_ERROR_DEPTH:
|
|
$error = 'The maximum stack depth has been exceeded.';
|
|
break;
|
|
case JSON_ERROR_STATE_MISMATCH:
|
|
$error = 'Invalid or malformed JSON.';
|
|
break;
|
|
case JSON_ERROR_CTRL_CHAR:
|
|
$error = 'Control character error, possibly incorrectly encoded.';
|
|
break;
|
|
case JSON_ERROR_SYNTAX:
|
|
$error = 'Syntax error, malformed JSON.';
|
|
break;
|
|
// PHP >= 5.3.3
|
|
case JSON_ERROR_UTF8:
|
|
$error = 'Malformed UTF-8 characters, possibly incorrectly encoded.';
|
|
break;
|
|
// PHP >= 5.5.0
|
|
case JSON_ERROR_RECURSION:
|
|
$error = 'One or more recursive references in the value to be encoded.';
|
|
break;
|
|
// PHP >= 5.5.0
|
|
case JSON_ERROR_INF_OR_NAN:
|
|
$error = 'One or more NAN or INF values in the value to be encoded.';
|
|
break;
|
|
case JSON_ERROR_UNSUPPORTED_TYPE:
|
|
$error = 'A value of a type that cannot be encoded was given.';
|
|
break;
|
|
default:
|
|
$error = 'Unknown JSON error occured.';
|
|
break;
|
|
}
|
|
|
|
if ($error !== '') {
|
|
// throw the Exception or exit // or whatever :)
|
|
return false;
|
|
}
|
|
|
|
// everything is OK
|
|
return true;
|
|
}
|
|
} |