1

我正在从 JInput 中检索一个必须是整数的值。

$input = new JInput();
$post = $input->getArray($_POST);
$value= $input->$post['value'];

现在显然我不能使用 is_int() 因为$_POST使值成为字符串 - 通常使用 filter_input() 解决。这给我留下了一个小问题——因为我想拒绝任何不是整数的东西——不要将它转换为整数。使用类似的东西

$value=JFactory::getApplication()->input->get('value', '0', 'INT');

强制字符串为整数。(例如,输入 1.2 将给出 $value 1 等)。所以我被困在如何实现这个过滤器上。理想情况下,我想做一些类似的事情

if(is_int($delete)) {
    //Carry on processing data
} else {
    //Stop function and display a JError
JLog::add("Value is not a integer", JLog::WARNING, 'jerror');
}
4

3 回答 3

0

为什么不使用:

$input = new JInput;
$value = $input->getInt('value');
于 2013-01-27T20:51:55.147 回答
0

最后在 SO under check for integer or float values上找到了它。

使用的最终代码是:

$input = new JInput();
$post = $input->getArray($_POST);
$value= $input->$post['value'];
//checks value is numeric and if it is a int
if(is_numeric($value) && (int) $value == $value) {
    //process data
} else {
    JLog::add("Value is not a integer", JLog::WARNING, 'jerror');
}
于 2013-01-27T23:38:51.993 回答
0
$input = new JInput;
$email = $input->get('email', '', 'post');
$time = $input->get('time', '', 'post');
$move = $input->get('move', '', 'post');
$idcat = $input->get('idcat', '', 'post');
于 2013-02-04T11:12:00.043 回答