-4

基本上,我制作了一个脚本来登录网站,从网站获取元素,并将一个元素与另一个元素分开。问题是,我已经检查了很多次,除数为零。这是片段:

if($num==0)
{
    echo "<td>".$estate_income."/".$num."</td>";
}
else
{
    echo "<td>".$estate_income/$num."</td>";
}

这将输出类似50/2000的内容,这意味着 if 语句为真,这意味着 $num 在某种程度上等于 0。如果我尝试将这两个变量相除,它将输出php warning diivision by zero

echo "<td>".$estate_income/$num."</td>";

我现在要问的是,对于一个解决方案,也许一些错误检测方法可以告诉我我做错了什么。这可能是我忽略的非常明显的事情。

提前致谢!

艾哈迈德·阿尔巴亚提

编辑:

            try
            {
                echo "<td>".$estate_income/$num."</td>";
            }
            catch(Exception $e)
            {
                echo 'Caught exception: ',  $e->getMessage(), "\n";
            }

输出Warning: Division by zero in . . . on line 133

我试图划分的变量在 foreach 循环中。

$num 变量定义在一个包含在内的函数中:

function num_format($n)
{
    $n=str_replace(",","",str_replace(" ","",$n));
    if(strpos($n,".")===FALSE)
    {
        if(strpos($n,"K")!==FALSE)
        {
            $n=str_replace("$","",str_replace("K","000",$n));
        }
        elseif(strpos($n,"mil")!==FALSE)
        {
            $n=str_replace("$","",str_replace("mil","000000",$n));
        }
        elseif(strpos($n,"bil")!==FALSE)
        {
            $n=str_replace("$","",str_replace("bil","000000000",$n));
        }
        elseif(strpos($n,"tril")!==FALSE)
        {
            $n=str_replace("$","",str_replace("tril","000000000000",$n));
        }
        else
        {
            $n=str_replace("$","",$n);
        }
    }
    else
    {
        $n=str_replace(".","",$n);
        if(strpos($n,"K")!==FALSE)
        {
            $n=str_replace("$","",str_replace("K","00",$n));
        }
        elseif(strpos($n,"mil")!==FALSE)
        {
            $n=str_replace("$","",str_replace("mil","00000",$n));
        }
        elseif(strpos($n,"bil")!==FALSE)
        {
            $n=str_replace("$","",str_replace("bil","00000000",$n));
        }
        elseif(strpos($n,"tril")!==FALSE)
        {
            $n=str_replace("$","",str_replace("tril","00000000000",$n));
        }
        else
        {
            $n=str_replace("$","",$n);
        }
    }
    global $num;
    $num=$n;
}
4

1 回答 1

1

发现了问题。正如我已经提到的,我从一个网站获得了价值。当我在字符串上使用 var_dumb 时,它会输出string(149) "202000". 这实际上让我感到困惑,因为字符串/数字只有 6 个字符。所以我决定看一下源代码,我发现了这个:

<spanstyle="white-space:nowrap;"><imgsrc="http: staticstorm8com="" vl="" images="" bloodpng?v="330&quot;width=&quot;9&quot;height=&quot;12&quot;style=&quot;padding-right:2px&quot;">202000<br></imgsrc="http:></spanstyle="white-space:nowrap;">

当我从网站获取值时,我的变量中有一些其他 HTML 元素。

于 2013-10-20T13:59:02.280 回答