-4

基本的に、Web サイトにログインし、Web サイトから要素を取得し、ある要素を別の要素で分割するスクリプトを作成しました。問題は、私はすでに何度もチェックしており、除数がゼロではないことです。ここにスニペットがあります:

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

これ50/2000は、if ステートメントが true であることを意味し、$num が何らかの形で 0 に等しいことを意味します。2 つの変数を互いに除算しようとすると、次のように出力されます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;">

Web サイトから値を取得しているときに、変数に他の HTML 要素をいくつか取得しました。

于 2013-10-20T13:59:02.280 に答える