[error] PHP Warning: Division by zero

Y
На сайте с 09.02.2013
Offline
68
754

Здравствуйте. Такая проблема, не могу попасть в админку сайта, появляется белый экран.

В error_log такая ошибка:

[error] [client 77.67.143.147] PHP Warning: Division by zero in /home/b/*********/*******films.ru/public_html/mobile/youtybeGet/services/youtube.php on line 15, referer: http://*******films.ru/mobile/?sk=video&vid=SQIU27BtUEc ?

ну и сам код:

<?php

class youtube {

var $conn = false;
var $src = true;
var $stream = false;
var $error = false;

function make_pretty($bytes)
{
$symbols = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB');
$exp = floor(log($bytes) / log(1024));

return sprintf('%.2f '.$symbols[$exp], $bytes/pow(1024, floor($exp)));
}

function get($url){
global $siteURL;
$curl = new Curl('youtube');
if ( (preg_match( "/v=([a-zA-Z0-9\\_\\-]+)/", $url, $videoID ) || preg_match( "/video_id=([a-z0-9\\_\\-]+)/i", $url, $videoID ) || preg_match( "/youtube\\.com\\/v\\/([a-z0-9\\_\\-]+)/i", $url, $videoID )) ) {
$videoID = $videoID[1];
} {
$this->error = "Invalid Youtube URL";
}

$html = $curl->get($url);
if(strstr($html,'verify-age-thumb')){
$this->error = "Adult Video Detected";
return false;
}

if(strstr($html,'das_captcha')){
$this->error = "Captcah Found, please refresh";

preg_match('/^.*captcha.*$/i',$html,$match);
echo '<div style="display:none">';
var_dump($match);
echo '</div>';

return false;
}

if(!preg_match('/stream_map": "(.[^"]*?)"/i',$html,$match)){
$this->error = "Error Locating Downlod URL's";
return false;
}

preg_match('%<title>YouTube - (.[^<]*?)</title>%',$html,$tmatch);

if(!empty($tmatch[1]))
{
$title = urlencode($tmatch[1]);
} else {
$title = "video";
}

$fmt_url = urldecode($match[1]);

// if(preg_match('/^(.*?)\\\\u0026/',$fmt_url,$match)){
// $fmt_url = $match[1];
// }

$urls = explode('url=',$fmt_url);
array_shift($urls);
$foundArray = array();



foreach($urls as $url)
{
preg_match('/\\\\u0026(itag=)(\d+)\\\\u0026/',$url,$m1);
$fmt = $m1[2];
preg_match('/\\\\u0026sig=(\w+\.\w+)/',$url,$m1);
$si = $m1[1];
preg_match('/(http[^\\\\]+)\\\\/',$url,$m1);
$u = $m1[1];
$foundArray[$fmt] = $u."&signature=".$si;
}


$formats = array(
'13'=>array('3gp',' 3gp Low Quality '),
'17'=>array('3gp',' 3gp Medium Quality '),
'36'=>array('3gp',' 3gp High Quality '),
'5'=>array('flv',' FLV Low Quality '),
'6'=>array('flv','FLV Low Quality '),
'34'=>array('flv',' FLV High Quality (320p) '),
'35'=>array('flv',' FLV High Quality (480p) '),
'18'=>array('mp4',' Mp4 High Quality (480p) '),
'22'=>array('mp4',' Mp4 High Quality (720p) '),
'37'=>array('mp4',' Mp4 High Quality (1080p) '),
'38'=>array('mp4',' Mp4 High Quality (3072p) '),
'83'=>array('mp4',' Mp4 High Quality (240p) '),
'82'=>array('mp4',' Mp4 High Quality (360p) '),
'85'=>array('mp4',' Mp4 High Quality (520p) '),
'84'=>array('mp4',' Mp4 High Quality (720p) '),
'43'=>array('WEBM',' WEBM High Quality (480p) '),
'45'=>array('WEBM',' WEBM High Quality (720p) '),
'44'=>array('WEBM',' WEBM High Quality (480p) '),
'46'=>array('WEBM',' WEBM High Quality (1080p) '),
'100'=>array('WEBM',' WEBM High Quality (360p) '),
'101'=>array('WEBM',' WEBM High Quality (480p) '),
'102'=>array('WEBM',' WEBM High Quality (720p) '),
// '37'=>array('mp3','High Quality (1080p)'),
);

foreach ($formats as $format => $meta) {
if (isset($foundArray[$format])) {
$curl = new Curl('youtube');
$size = $this->make_pretty($curl->getSize($foundArray[$format]));
//$curl = new Curl('youtube');
$a = ""; // $curl->get($adf.urlencode($foundArray[$format]));
$videos[] = array('ad'=>$a,'sz'=>$size,'ext'=>$meta[0],'type'=>$meta[1],'url'=>$siteURL.'stream.php?url='.base64_encode($foundArray[$format]."&title=".$title));
}
}

return $videos;

}

}

Может, кто знает в чем дело?

siv1987
На сайте с 02.04.2009
Offline
427
#1
Yurezzz:
Может, кто знает в чем дело?

https://www.google.ru/search?client=opera&rls=ru&q=%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5+%D0%BD%D0%B0+%D0%BD%D0%BE%D0%BB%D1%8C&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest

$bytes/pow(1024, floor($exp))

перед $symbols = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB');

добавьте


if(! $bytes)
return '0 B';
Y
На сайте с 09.02.2013
Offline
68
#2

Спасибо. Ошибка, вроде, исчезла. Но проблема осталась (белый экран в админпанели)

А такая ошибка может негативно на что-то влиять?:

[Tue Apr 30 21:19:05 2013] [error] [client 178.121.31.46] client denied by server configuration: ***/torrentfilms.ru/public_html/system/application/views/en/slider/js/slider/themes/slider/img/close_video_bg.png, referer: http://torrentfilms.ru/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий