有人可以帮我解密这个功能吗?
问题描述:
我正在尝试使用一系列数字匹配数组中的数字,我被告知要使用preg_match。不幸的是,我不擅长正则表达式。有什么建议么?有人可以帮我解密这个功能吗?
<?php
$range = range(89000000,89499999);
foreach($range as $number)
{
if (preg_match("/89304043/", $number))
{
die("Valid carrier Number");
}
else
{
die("Invalid carrier Number");
}
}
?>
答
$number=(int)$number;
$valid=($number>=89000000 && $number<=89499999);
$valid
现在是真或假。我强制转换,以确保它是一个整数的数量(我假设有在它没有非数字字符。
+0
非常感谢你,这个选项实际上是最好的方式! – Bruce 2011-04-01 02:51:47
答
function myrange() {
if($number > 89000000 && $number < 89499999) {
echo 'Number is between range';
}
}
答
你的foreach将只执行一次,它会在0.89死...死无效应该是foreach循环之后。
<?php
$range = range(89000000,89499999);
foreach($range as $number)
{
if (preg_match("/89304043/", $number))
{
die("Valid carrier Number");
}
}
// If we're here - the number is invalid, as we've not "died" yet
die("Invalid carrier Number");
?>
虽然做法是怪异手头的问题......但是,嘿,可能是真正的问题是别的东西......
是您的大写锁定坏了吗? – 2011-04-01 01:31:34
'$ range = range(89000000,89499999)' - ouch。 – Jon 2011-04-01 01:32:09
这是一个o f我在一段时间看到的更加痛苦的代码段。 – Wiseguy 2011-04-01 01:53:30