Hi! Could we please enable some services and cookies to improve your experience and our website?

PHPize Online / SQLize Online  /  SQLtest Online

A A A
Login    Share code      Blog   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear

Stuck with a problem? Got Error? Ask AI support!

Copy Clear
Copy Format Clear
<?php echo "Никнейм: "; $_GET['nickname'] = trim(fgets(STDIN)); echo "Клан: "; $_GET['clan'] = trim(fgets(STDIN)); echo "Ранг: "; $_GET['rank'] = trim(fgets(STDIN)); echo "URL жетона: "; $_GET['badge'] = trim(fgets(STDIN)); echo "URL значка: "; $_GET['mark'] = trim(fgets(STDIN)); echo "URL нашивки: "; $_GET['stripe'] = trim(fgets(STDIN)); echo "Количество часов: "; $_GET['time'] = trim(fgets(STDIN)); echo "Количество PvP: "; $_GET['pvp'] = trim(fgets(STDIN)); echo "Количество PvE: "; $_GET['pve'] = trim(fgets(STDIN)); echo "У/С: "; $_GET['stat'] = trim(fgets(STDIN)); echo "Любимый класс PvP: "; $_GET['pvp_class'] = trim(fgets(STDIN)); echo "Любимый класс PvE: "; $_GET['pve_class'] = trim(fgets(STDIN)); class UserbarGenerator { private $image; private $baseUrl = 'https://egorsplit.com/'; private $fontPath; private $fontPath2; public function __construct() { if (!extension_loaded('imagick')) { throw new \Exception('Расширение Imagick не установлено. Установите его для работы скрипта.'); } $this->fontPath = $this->baseUrl . 'regular.ttf'; $this->fontPath2 = $this->baseUrl . 'static.ttf'; $this->image = new \Imagick(); $this->image->newImage(911, 133, new \ImagickPixel('transparent')); $this->image->setImageFormat('png'); } public function generate($nickname = 'Клеймор', $clan = ' ', $rank = 100, $stats = ['time' => '0 ч.', 'class1' => 'ШТУРМОВИК', 'stat1' => '0', 'class2' => 'ШТУРМОВИК', 'stat2' => '0', 'kd' => '0.0'], $badgeUrl = '', $markUrl = '', $stripeUrl = '') { $this->addBackground(); $this->addStripe($stripeUrl); $this->addBadgeAndMark($badgeUrl,$markUrl); $this->addRank($rank); $this->addNickname($nickname); $this->addClan($clan); $this->addLog(); $this->addStat($stats); $this->saveImage(); } private function addBackground() { $background = new \Imagick(); $background->readImageBlob(file_get_contents($this->baseUrl . 'background.png')); $background->scaleImage(900, 133.3); $this->image->compositeImage($background, \Imagick::COMPOSITE_OVER, 0, 0); } private function addImageFromUrl($url, $x, $y) { if ($url) { $image = new \Imagick(); $image->readImageBlob(file_get_contents($url)); $this->image->compositeImage($image, \Imagick::COMPOSITE_OVER, $x, $y); } } private function addStripe($stripeUrl = '') { if (!$stripeUrl == '' && !$stripeUrl == '0'){ $pageDocument = @file_get_contents($stripeUrl); if ($pageDocument === false) { die("Указанная нашивка не найдена"); } $image = new \Imagick(); $image->readImageBlob(file_get_contents($stripeUrl)); $image->scaleImage(512, 128); $this->image->compositeImage($image, \Imagick::COMPOSITE_OVER, 60, 3); } } private function addBadgeAndMark($badgeUrl = '', $markUrl = '') { if (!$badgeUrl == '' && !$badgeUrl == '0') { $pageDocument = @file_get_contents($badgeUrl); if ($pageDocument === false) { die("Указанный жетон не найден"); } $badge = new \Imagick(); $badge->readImageBlob(file_get_contents($badgeUrl)); $badge->scaleImage(128,128); $this->image->compositeImage($badge, \Imagick::COMPOSITE_OVER, 0, 0); } if (!$markUrl == '' && !$markUrl == '0') { $pageDocument = @file_get_contents($markUrl); if ($pageDocument === false) { die("Указанный значок не найден"); } $mark = new \Imagick(); $mark->readImageBlob(file_get_contents($markUrl)); $mark->scaleImage(128,128); $centerX = 0 + (128 - 128) / 2; $this->image->compositeImage($mark, \Imagick::COMPOSITE_OVER, $centerX, 0); } } private function addNickname($nickname) { $draw = new \ImagickDraw(); $draw->setFont($this->fontPath); $draw->setFontSize(28); $draw->setFillColor(new \ImagickPixel('rgba(90%, 90%, 90%, 1.0)')); $this->image->annotateImage($draw, 207, 73, 0, $nickname); } private function addClan($clan) { $draw = new \ImagickDraw(); $draw->setFont($this->fontPath); $draw->setFontSize(26); $draw->setFillColor(new \ImagickPixel('rgba(220, 210, 0, 1.0)')); $this->image->annotateImage($draw, 207, 48, 0, $clan); } private function addStat($stats) { $draw = new \ImagickDraw(); $draw->setFont($this->fontPath2); $draw->setFontSize(10); $draw->setFillColor(new \ImagickPixel('rgba(220, 210, 0, 1.0)')); $y = 41; foreach ($stats as $stat) { $this->image->annotateImage($draw, 637, $y, 0, $stat); $y += 14; } } private function addLog() { $background = new \Imagick(); $background->readImageBlob(file_get_contents($this->baseUrl . 'ru_log.png')); $background->scaleImage(28, 52); $this->image->compositeImage($background, \Imagick::COMPOSITE_OVER, 600, 32); } private function addRank($rank = 100) { $background = new \Imagick(); $background->readImageBlob(file_get_contents($this->baseUrl . 'ranks_all.png')); $background->cropImage(32, 32, 0, ($rank - 1) * 32); $background->scaleImage(64, 64); $this->image->compositeImage($background, \Imagick::COMPOSITE_OVER, 128, 35); } private function saveImage() { $id = time(); $this->image->resizeImage(432, 64, \Imagick::FILTER_LANCZOS, 1); $this->image->writeImage($id . '.png'); $this->image->destroy(); echo $id; } } $generator = new UserbarGenerator(); $generator->generate( $_GET['nickname'] ?: 'Ноуклип', $_GET['clan']?: '', $_GET['rank'] ?: 100, [ 'time' => ($_GET['time'] ?: '0') . ' ч.', 'class1' => ($_GET['pve_class'] ?: 'Н/Д'), 'stat1' => $_GET['pve'] ?: 0, 'class2' => $_GET['pvp_class'] ?: 'Н/Д', 'stat2' => $_GET['pvp'] ?: 0, 'kd' => $_GET['stat'] ?: 0 ], $_GET['badge'] ?: '', $_GET['mark'] ?: '', $_GET['stripe'] ?: '' ); $directory = '.'; $files = scandir($directory); foreach ($files as $file) { if (preg_match('/^\d+\.png$/', $file)) { $timestamp = intval(basename($file, '.png')); if (time() - $timestamp > 60) { $filePath = $directory . '/' . $file; unlink($filePath); } } } ?>
Copy Clear