вопрос
Привет всем,проблема такая.Есть кино сайт на него парсится рейтинг с кинопоиска
после парса получается так
как это исправить?чтобы парсил не 4 цифры а 3
после парса получается так
как это исправить?чтобы парсил не 4 цифры а 3
<?php
define('ROOT_DIR', dirname(__FILE__));
header("Content-type: image/png");
$file = ROOT_DIR."/rating/{$_GET['id']}.png";
if(file_exists($file))
{
$modif= time() - @filemtime($file);
if($modif < 86400)
{
readfile($file);
exit;
}
}
ob_start();
function show_error_image($error_text = "Error with the image!")
{
$error_picture_width = strlen($error_text) * 7 + 12;
$img = @imagecreatetruecolor($error_picture_width, 30) or die("Not true test data!");
$text_color = imagecolorallocate($img, 255, 0, 0);
imagestring($img, 3, 7, 8, $error_text, $text_color);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
exit;
}
function subX($dbl)
{
switch ($dbl) {
case 1:
return 9;
break;
case 2:
return 8;
break;
case 3:
return 7;
break;
case 4:
return 6;
break;
case 5:
return 5;
break;
case 6:
return 4;
break;
case 7:
return 3;
break;
case 8:
return 2;
break;
case 9:
return 1;
break;
}
}
if(strlen($_GET['id']) > 7) show_error_image("A maximum of 7 characters!");
if(!ctype_digit($_GET['id'])) show_error_image("Wrong characters in the query!");
$doc = new DOMDocument();
$doc->load("http://www.kinopoisk.ru/rating/{$_GET['id']}.xml");
$kp = $doc->getElementsByTagName('kp_rating');
$kino_rating = $kp->item(0)->nodeValue;
$kino_votes = ($kino_rating) ? $kp->item(0)->getAttribute('num_vote') : "";
$kino_votes = number_format($kino_votes);
$imdb = $doc->getElementsByTagName('imdb_rating');
$imdb_rating = $imdb->item(0)->nodeValue;
$imdb_votes = ($imdb_rating) ? $imdb->item(0)->getAttribute('num_vote') : "";
$imdb_votes = number_format($imdb_votes);
$pic = ($kino_rating > 0) ? imagecreatefrompng("img/rating.png") : imagecreatefrompng("img/kinopoisk.png");
$pic = ($imdb_rating > 0) ? imagecreatefrompng("img/rating.png") : imagecreatefrompng("img/kinopoisk.png");
$star = imagecreatefrompng("img/star.png");
$colorOne = ImageColorAllocate($pic, 46, 195, 238);
$colorTwo = ImageColorAllocate($pic, 98, 97, 97);
imagealphablending($pic, true);
($kino_rating > 10) ? $kino_rating = 10 : "";
imagettftext($pic, 30, 0, 8, 35, $colorOne, "fonts/comicbd.TTF", $kino_rating);
if($imdb_rating > 0)
{
($imdb_rating > 10) ? $imdb_rating = 10 : "";
imagettftext($pic, 30, 0, 114, 35, $colorTwo, "fonts/comicbd.TTF", $imdb_rating);
}
imagesavealpha($pic, true);
imagepng($pic);
imagedestroy($pic);
$cache = ob_get_contents();
ob_end_clean();
echo $cache;
$fp = @fopen ($file, "w");
@fwrite($fp, $cache);
@fclose($fp);
?>
Ответил: Sander
$kino_rating = $kp->item(0)->nodeValue;
Заменить на
$kino_rating = round($kp->item(0)->nodeValue,2);