Главная > IT > PHP и звездочки

PHP и звездочки

Писать программы — серьезное занятие. Хорошие программисты получают много денег, создают стартапы. Они действительно хороши, знают всё о своей технологии, пишут красивый код. Помимо работы, однако же, программирование крайне полезно для повседневной работы за компьютером. С помощью небольших скриптов (sh, wsh) можно упростить многие операции, а чуть более сложные задачи можно решить небольшим .Net приложением, сделанным за вечер в Express Studio. Конечно, для многих задач there is an app, но не для всех.

Наверное, вместо того, чтобы обучать основам алгоритмов на Паскале или, не дай Бог, Си в школах и вузах бедных детей, которые усваивают примерно ноль информации из этих занятий, лучше рассказывать о том, как это пригодится в жизни.

Итак, к делу.

Мой друг делает много раздач на одном малоизвестном торрент-трекере (с бесплатным контентом, естественно) и любит оформлять их красиво. В частности, он подставляет к композициям оценки в звездочках, от одной до пяти звездочек. Он попросил меня сделать ему набор файлов с шагом в 1пкс от 1 до 5 звездочек.

Получился элементарный код:

<?
$im = imagecreatefrompng("Star.png");
list($width, $height, $type, $attr) = getimagesize("Star.png");
echo "Done loading file<BR>";

$w = "0";

for ($j=1;$j<($width*5)+1;$j++) {
    echo "Starting star $j<BR>";
    $im2 = imagecreate($j, $height);
    for ($i=0; $i<5; $i++) {
        imagecopy($im2, $im, $i*$width, 0, 0, 0, $width, $height);
    }
    if ($j>9) $w = ""; // No more leading zero
    imagepng($im2, "star$w$j.png");
    imagedestroy($im2);
}
?>

* This source code was highlighted with Source Code Highlighter.

Внешний цикл перебирает все варианты от 1 пикселя до полных 5 звездочек, а внутренний копирует эти 5 звездочек в новое изображение (даже если оно в 1 пиксель шириной).

Такой код можно написать, имея неделю знакомства с php. Как исполнить php файл разобраться, согласитесь, тоже не особо сложно.

У такого программирования есть существенное отличие от “нормального”: плевать на правила, стандарты — делается для себя и чтобы быстро. Многих php-программистов, может, тошнит от этого кода. Зато работает. :)

IT , ,

  1. Комментариев пока нет.
  1. Трэкбеков пока нет.