Два часа назад работал следующий скрипт. Теперь по какой-то причине я получаю сообщение об ошибке «Warning: Division by zero in _ on line 30». Вот сценарий. Может ли кто-нибудь сказать мне, что я делаю неправильно, и как исправить это?PHP Division by Zero?
В основном этот скрипт вытаскивает данные из двух элементов на другом веб-сайте, деля их, чтобы получить число, которое, в свою очередь, используется для установки ширины элемента. Некоторое время было устранено это. Большое спасибо заранее!
<?php
define("FFF_SIXDEGREES", "http://www.stayclassy.org/fundraise?fcid=257739");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, FFF_SIXDEGREES);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if(!($results = curl_exec($curl))) {
print("{ \"total\": \"$0.00\" }");
return;
}
$pattern = '/<li class="goalTitle">Raised so far:<\/li>\s*<li>\$([\d\.,]+)<\/li>/';
preg_match($pattern, $results, $matches);
$total = $matches[1];
$total = str_replace(",", "", $total);
// printf("<h2 class=\"raised-total\">$%s</h2>", formatMoney($total, true));
$pattern2 = '/<li class="goalTitle">My goal:<\/li>\s*<li>\$([\d\.,]+)<\/li>/';
preg_match($pattern2, $results, $matches);
$total2 = $matches[1];
$total2 = str_replace(",", "", $total2);
// printf("<h2 class=\"goal-total\">$%s</h2>", formatMoney($total2, true));
$diff = ($total/$total2) * 100; // THIS IS THE LINE OF CODE IN QUESTION
function formatMoney($number, $fractional=false)
{
if ($fractional) {
$number = sprintf('%.2f', $number);
}
while (true) {
$replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number);
if ($replaced != $number) {
$number = $replaced;
} else {
break;
}
}
return $number;
}
echo "<div class=\"progress-header\" style=\"width:$diff%;\"><span class=\"raised-amount\">$$total</span><span class=\"goal-amount\">$$total2</span></div>";
?>
В целом это также помогает обеспечить линию кода. Очень мало будет идти и считать строки в вашем коде .... – Havelock
Не могли бы вы отметить линию? Я не хочу считать ... –
Я собираюсь выйти на конечность и сказать, что это единственная линия с делением. '$ diff = ($ total/$ total2) * 100;' По-видимому '$ total2' равно 0. –