php区间判断 返回对应值,PHP 使用 version_compare () 函数判断含符号数值是否在某一区间内...

之前拿ip举的例子可能不太恰当,修改一下。

/**

* 判断变量是否在范围内

*

* @param string $strnum 1.1.1.1

* @param string $min

* @param string $max

* @return bool

*/

function number_segment_between($strnum, $min, $max)

{

return version_compare($strnum, $min, '>=') and version_compare($strnum, $max, '<=');

}

/**

* 测试使用方法,为了输出结果更直观

*

* @param string $strnum 1.1.1.1

*/

function test_print($strnum, $min, $max)

{

$format = "number_segment_between('%s', '{$min}', '{$max}') : ";

print_r(sprintf($format, $strnum) . (number_segment_between($strnum, $min, $max) ? 'True' : 'False') . "\n");

}

echo '

';

$min = '100.0.100.5';

$max = '100.0.100.20';

echo "测试.分隔比较:\n";

test_print('127.0.0.1', $min, $max);

test_print('1.1.1.1', $min, $max);

test_print('255.0.0.1', $min, $max);

test_print('100.0.100.5', $min, $max);

test_print('100.0.99.5', $min, $max);

test_print('200.0.100.100', $min, $max);

test_print('200.0.101.100', $min, $max);

test_print('100.0.1.10', $min, $max);

test_print('100.0.100.10', $min, $max);

echo "\n\n";

$min = '100-0-100-5-1-1';

$max = '100-0-100-20-1-1';

echo "测试-分隔比较:\n";

test_print('127-0-0-1-1-1', $min, $max);

test_print('1-1-1-1-1-1', $min, $max);

test_print('255-0-0-1-1-1', $min, $max);

test_print('100-0-100-5-1-1', $min, $max);

echo "\n\n";

$min = '100_0_100_5_0_1_0_1';

$max = '100_0_100_20_0_1_0_1';

echo "测试_分隔比较:\n";

test_print('127_0_0_1_0_1_0_1', $min, $max);

test_print('1_1_1_1_0_1_0_1', $min, $max);

test_print('255_0_0_1_0_1_0_1', $min, $max);

test_print('100_0_100_5_0_1_0_1', $min, $max);

测试.分隔比较结果输出:

number_segment_between('127.0.0.1', '100.0.100.5', '100.0.100.20') : False

number_segment_between('1.1.1.1', '100.0.100.5', '100.0.100.20') : False

number_segment_between('255.0.0.1', '100.0.100.5', '100.0.100.20') : False

number_segment_between('100.0.100.5', '100.0.100.5', '100.0.100.20') : True

number_segment_between('100.0.99.5', '100.0.100.5', '100.0.100.20') : False

number_segment_between('200.0.100.100', '100.0.100.5', '100.0.100.20') : False

number_segment_between('200.0.101.100', '100.0.100.5', '100.0.100.20') : False

number_segment_between('100.0.1.10', '100.0.100.5', '100.0.100.20') : False

number_segment_between('100.0.100.10', '100.0.100.5', '100.0.100.20') : True

测试-分隔比较结果输出

number_segment_between('127-0-0-1-1-1', '100-0-100-5-1-1', '100-0-100-20-1-1') : False

number_segment_between('1-1-1-1-1-1', '100-0-100-5-1-1', '100-0-100-20-1-1') : False

number_segment_between('255-0-0-1-1-1', '100-0-100-5-1-1', '100-0-100-20-1-1') : False

number_segment_between('100-0-100-5-1-1', '100-0-100-5-1-1', '100-0-100-20-1-1') : True

测试_分隔比较结果输出

number_segment_between('127_0_0_1_0_1_0_1', '100_0_100_5_0_1_0_1', '100_0_100_20_0_1_0_1') : False

number_segment_between('1_1_1_1_0_1_0_1', '100_0_100_5_0_1_0_1', '100_0_100_20_0_1_0_1') : False

number_segment_between('255_0_0_1_0_1_0_1', '100_0_100_5_0_1_0_1', '100_0_100_20_0_1_0_1') : False

number_segment_between('100_0_100_5_0_1_0_1', '100_0_100_5_0_1_0_1', '100_0_100_20_0_1_0_1') : True

version_compare()方法介绍

version_compare — 对比两个「PHP 规范化」的版本数字字符串

本作品采用《CC 协议》,转载必须注明作者和本文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值