有人可以帮我解读这个功能吗?

时间:2011-04-01 01:30:15

标签: php

我正在尝试将数组中的数字与一系列数字匹配,我被告知要使用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" );
     }


}
?>

4 个答案:

答案 0 :(得分:0)

试试,

gmp_cmp("89304043", $number);

这是长数字。如果这也超出范围, 试试这个库,http://php.net/manual/en/book.bc.php

答案 1 :(得分:0)

$number=(int)$number;
$valid=($number>=89000000 && $number<=89499999);

$valid现在无论是真还是假。我对数字进行了类型化以确保它是一个整数(并且我假设其中没有非数字字符。

答案 2 :(得分:0)

function myrange() {  
  if($number > 89000000 && $number < 89499999) {  
    echo 'Number is between range';
  }  
}  

答案 3 :(得分:0)

你的foreach只执行一次,它将死于89000000 ...死亡应该在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" );

?>

虽然手头的问题很奇怪...但是,嘿,可能真正的问题是其他的......