Найди 10 различий
Создание изображения в PHP с использованием функций графической библиотеки GD
Пример скрипта для создания изображения средствами РНР
<?php
//
// шапка страницы
//
function pageHeader()
{
print("<html><head>");
print("<title>Biorhythm with PHP3</title>");
print("</head><body>");
}
//
// подвал страницы
//
function pageFooter()
{
print("</body></html>");
}
//
// Функция преобразования даты по григорианскому календарю
// в юлианский календарь (количество дней)
//
function gregorianToJD($month, $day, $year)
{
// За основу взят алгоритм
// Peter Baum, pbaum@capecod.net
if($month < 3)
{
$month = $month + 12;
$year = $year - 1;
}
$jd = $day + floor((153 * $month - 457) / 5) + 365 * $year
+ floor($year / 4) - floor($year / 100)
+ floor($year / 400) + 1721118.5;
return($jd);
}
//
// Функция отрисовки графика биоритма
// Параметры: номер дня, период биоритма и цвет
//
function drawRhythm($daysAlive, $period, $color)
{
global $daysToShow, $image, $diagramWidth, $diagramHeight;
// определим день в центре графика
$centerDay = $daysAlive - ($daysToShow / 2);
// параметры графика
$plotScale = ($diagramHeight - 25) / 2;
$plotCenter = ($diagramHeight - 25) / 2;
// рисуем график
for($x = 0; $x <= $daysToShow; $x++)
{
// вычисление фазы синусоиды, соответствующей определенному дню
$phase = (($centerDay + $x) % $period) / $period * 2 * pi();
// вычисление значения Y
$y = 1 - sin($phase) * (float)$plotScale + (float)$plotCenter;
// рисуем линию от предыдущей точки до текущей
if($x > 0)
imageLine($image, $oldX, $oldY, $x * $diagramWidth / $daysToShow,
$y, $color);
// сохраняем текущие координаты для использования в следующем проходе цикла
$oldX = $x * $diagramWidth / $daysToShow;
$oldY = $y;
}
}
//
// ---- MAIN PROGRAM START ----
// Проверяем, была ли введена дата рождения.
// Если нет, отображаем форму для ввода даты
if(!isset($birthdate))
{
pageHeader();
?>
<form method="post" action="<?php print(basename($PHP_SELF)); ?>">
Please enter your birthday:<br>
<input type="text" name="birthdate"
value="MM/DD/YYYY"><input type="submit" value="OK!">
</form>
<?php
pageFooter();
exit();
}
// выделяем день, месяц и год
$birthMonth = substr($birthdate, 0, 2);
$birthDay = substr($birthdate, 3, 2);
$birthYear = substr($birthdate, 6, 4);
// Проверяем правильности ввода
if(!checkDate($birthMonth, $birthDay, $birthYear))
{
pageHeader();
print("The date '$birthMonth/$birthDay/$birthYear' is invalid.");
pageFooter();
exit();
}
// параметры графика (глобальные переменные)
$diagramWidth = 710;
$diagramHeight = 400;
$daysToShow = 30;
//определяем, сколько дней человек прожил до текущей даты используя юлианский календарь.
$daysGone = abs(gregorianToJD($birthMonth, $birthDay, $birthYear)
- gregorianToJD(date( "m"), date( "d"), date( "Y")));
// содаем изображение
$image = imageCreate($diagramWidth, $diagramHeight);
// Регистрируем используемые цвета
$colorBackgr = imageColorAllocate($image, 192, 192, 192);
$colorForegr = imageColorAllocate($image, 255, 255, 255);
$colorGrid = imageColorAllocate($image, 0, 0, 0);
$colorCross = imageColorAllocate($image, 0, 0, 0);
$colorPhysical = imageColorAllocate($image, 0, 0, 255);
$colorEmotional = imageColorAllocate($image, 255, 0, 0);
$colorIntellectual = imageColorAllocate($image, 0, 255, 0);
// заливаем цветом фона
imageFilledRectangle($image, 0, 0, $diagramWidth - 1, $diagramHeight - 1, $colorBackgr);
// вычисляем начальную дату графика
$nrSecondsPerDay = 60 * 60 * 24;
$diagramDate = time() - ($daysToShow / 2 * $nrSecondsPerDay) + $nrSecondsPerDay;
for ($i = 1; $i < $daysToShow; $i++)
{
$thisDate = getDate($diagramDate);
$xCoord = ($diagramWidth / $daysToShow) * $i;
// рисуем засечку на оси и номер дня
imageLine($image, $xCoord, $diagramHeight - 25, $xCoord,
$diagramHeight - 20, $colorGrid);
imageString($image, 3, $xCoord - 5, $diagramHeight - 16,
$thisDate[ "mday"], $colorGrid);
$diagramDate += $nrSecondsPerDay;
}
// рисуем рамку
imageRectangle($image, 0, 0, $diagramWidth - 1, $diagramHeight - 20,
$colorGrid);
// рисуем оси
imageLine($image, 0, ($diagramHeight - 20) / 2, $diagramWidth,
($diagramHeight - 20) / 2, $colorCross);
imageLine($image, $diagramWidth / 2, 0, $diagramWidth / 2, $diagramHeight - 20,
$colorCross);
// выводим текст
imageString($image, 3, 10, 10, "Birthday: $birthDay.$birthMonth.$birthYear",
$colorCross);
imageString($image, 3, 10, 26, "Today: ". date( "d.m.Y"), $colorCross);
imageString($image, 3, 10, $diagramHeight - 42, "Physical", $colorPhysical);
imageString($image, 3, 10, $diagramHeight - 58, "Emotional", $colorEmotional);
imageString($image, 3, 10, $diagramHeight - 74, "Intellectual",
$colorIntellectual);
// рисуем три графика с соответствующими параметрами
drawRhythm($daysGone, 23, $colorPhysical);
drawRhythm($daysGone, 28, $colorEmotional);
drawRhythm($daysGone, 33, $colorIntellectual);
// Отправляем заголовок Content-type
//header("Content-type: image/gif");
header("Content-type: image/png");
// задаем чересстрочный режим
imageInterlace($image, 1);
// делаем цвет фона прозрачным
imageColorTransparent($image, $colorBackgr);
// и выводим изображение
//imageGIF($image);
imagePNG($image);
?>
Установить соединение с ftp сервером
$ftp_server = “proxy”; например: 123.456.789.10
$ftp_user_name = “username@ftpserver”; например: exampleuk@www.example.ru
$ftp_user_pass = “password”;
$conn_id = ftp_connect($ftp_server, 2121);
$login_result = ftp_login( $conn_id, $ftp_user_name, $ftp_user_pass );
Warning: opendir(http://localhost/test/) [function.opendir]: failed to open dir: not implemented in C:\Inetpub\wwwroot\test\index.php on line …
Warning: opendir(http://localhost/test/) [function.opendir]: failed to open dir: not implemented in C:\Inetpub\wwwroot\test\index.php on line …
Проблема возникла на домашнем сервере IIS при вызове функции opendir($dir).
Ошибка исчезает, если поменять адрес “http://localhost/test/“ на “C:\Inetpub\wwwroot\test“
Солидарность
Тишина. Небольшая деревня выглядит заброшенной. Большинство домов бесхозные и постепенно разваливаются, некоторые уже превратились в большие кучи хлама. Несколько стариков, доживающих свой век в деревне, в этой весенний апрельский день сидят по домам. Даже теплое весеннее солнце уже не может оторвать их от телевизоров – единственного развлечения в этой глухомани. Перелетные птицы еще не вернулись с южных краев, а вороны и сороки днем разлетаются по своим делам. И даже ветер притих, затаившись в еще голых ветках деревьев. Вся обстановка создает редкое и приятное чувство покоя и умиротворенности. Мысли о суетном постепенно отступают перед успокоением.
Неожиданно резкий истошный птичий вопль разрывает тишину, и в тоже мгновение воздух взрывается бесчисленными птичьими криками. Через секунду, неизвестно откуда появившись, сотни птиц взмывают в небо. Пространство над землей наполняется воронами и сороками . Все они летят к старому разваленному дому и кружатся не умолкая над одним местом. Одни , поочередно друг за другом камнем падают к земле, через мгновенье взмывая ввысь, другие нервно прыгают на ветках близ стоящих деревьев и истошно кричат. Кажется, что птиц охватило массовое сумасшествие, никогда ранее мне не приходилось видеть и слышать подобное. Все более нарастало ощущение чего-то ужасного, происходящего в том месте над которым кружили птицы. Не без опаски я направился к тому месту, размышляя о том, что могло вызвать такой невероятный птичий переполох. Увы, но никаких разумных объяснений в голову не приходило. По мере моего приближения к месту над которым кружили птицы их нервозность все более нарастала, шум вызванный их криками становился все более невыносимым. Вдруг мне показалось, что я услышал жалобный крик ребенка, более похожий на стон. “Ребенок в заброшенном доме? ” – эта мысль усилила мою тревогу. Оставалось метров тридцать, когда из-за деревьев мне наконец удалось увидеть то, над чем кружились птицы. В первое мгновенье мне показалось, что лежит мертвая растерзанная птица. Это был небольшой комок с разбросанными вокруг перьями. Мое неважное зрение не позволяло разглядеть детали, пока я не приблизился на расстояние метров пяти. Все это время вороны, издавая истошные крики, поочередно пикировали на этот комок, пытаясь нанести клювом по нему удар и тут же взмывая ввысь.
Наконец я сумел разглядеть источник птичьего ужаса. На земле почти неподвижно, соединившись в одно целое, на боку лежали две птицы – это были сорока и ястреб. “Мертвые?” – подумал я, приблизившись к ним почти вплотную. И в это мгновенье голова ястреба повернулась в мою сторону, он издал звук, напоминающий детский стон и тут же взмыл в небо. Следом зашевелилась сорока, покачиваясь сделала несколько прыжков, вскочила на ветку дерева, нервно покрутила головой, поправила клювом перья на крыльях и через секунду улетела. За ней также быстро разлетелись в разные стороны и все остальные птицы. И уже через пару минут наступили прежняя тишина и покой.
Я не люблю ворон и сорок. Их голоса неприятны на слух, они воруют клубнику, разбрасывают по округи мусор из помойных ям, да и внешний вид их не самый привлекательный. Но с этого дня этих птиц я стал уважать. На моих глазах проявилась удивительная птичья солидарность по спасению от смертельной опасности соплеменника. Подобную солидарность среди людей я встречал крайне редко, а , может быть, и совсем не встречал.
Будни малого бизнеса
Желтое 3-этажное здание, с высоким забором в стиле «модерн». Большая кованая дверь отделяет внутренний мир от внешнего. На двери, по всем правилам пожарной безопасности, надпись «Вход». Чуть ниже нацарапано гвоздем: «Кто сюда вошел – вечная память героям». По периметру здания бегает злая собака под цвет особняка. Встретившись с ней взглядом, можно прочесть ее девиз: «Это – Бизнес и никого лишнего».
3-й этаж. Пять часов утра. Комната реальных парней. Он проснулся. Посмотрел на часы : «Как я рано», но ничего, кто рано встает, тот правит миром! Подумал он!!!. Кто рано встает, тот всех достает, подумали те, кого он разбудил. Не теряя времени, он надел легкий комбинезон фирмы «арсус» и быстро пошел к выходу. Спускаясь вниз, наткнулся на главного меха. Опять гаденыш у девчонок ночевал. Надо повесить кирпич над их комнатой. Еще раз увижу – лишу прав за нарушение и выгоню. Но прочитав в глазах меха фразу: «Ну хоть бы одна??». Отец пожалел парня и сразу простил.
Бассейн, шейпинг, парфюм, кофе. Кофе был сварен с таким дерзким ароматом, что проснулись все остальные, в том числе и две бабки, проживающие в соседних домах. Старушкам почудилось, что они на курорте Баден-Баден и им принесли кофе в постель.
Наконец хлопнула внизу дверь. Мороз-Воевода пошел осматривать свои владения. Народ снова уснул.
6.30 – парни подъем. Парни повскакивали со своих двухэтажных коек и не включая свет в целях экономии, начали быстро одеваться. В темноте поперепутали вещи. Энергетику достался джинсовый костюм начальника участка. Посмотрев на себя в полутемное зеркало, энергетик негромко подумал:
“е-мое, сегодня надзор должна подписать мне паспорт готовности обслуживаемой деревни к зиме!”
Мастеру достался свитер старшего мастера. Так и пойду, в одном свитере, у меня сегодня встреча с женской половиной дома 42 – подумал мастер. Одежда больших размеров, выстиранная на кануне еще не высохла, поэтому главный инженер и другой начальник участка облачились лишь в сигнальные жилете. Мех был в плавках, зам.нач-ка ПТО – в домашней полосатой пижаме. В этот момент в спальню к мальчикам зашла зав.склад. Она была обвешана как рождественская елка чистыми рубашками, отпаренными брюками и фирменными пиджаками, за ее спиной висел рюкзак с начищенными ботинками. Она включили свет и скомандовала.: «Одеваться – быстро». Парни, наконец были готовы, быстро почистили зубы все одной щеткой и умылись бодрящей холодной водой, т.к. горячая в кране еще не нагрелась. Холодная вода, бодрящий кофе и бутерброд с сыром окончательно разбудили мужскую половину фирмы. Скоро оперативка.
Оперативка – эта маленькая операция по удалению гланд, больно – но очень быстро проходит, а позже даже кажется, что тебе намного лучше, в голове ясность ну и т.д. Оперативка транслируется обычно по громкой связи, поэтому в своей спальне проснулись девчонки.
Длинные ночнушки, чепчики с кружавчиками, пижамки-топлес замельтешили по спальне. Умывались молоком, массаж с медом и глицерином, затем каждая достала из-под кровати сундук-купе и начала наряжаться.
7.50. Переход девочек с 3 этажа на второй принимал лично директор. Бабий батальон был в прекрасной форме и к работе тоже был готов. Только, экономка, блин опять в своей монашеской юбке, придется совершить насильственное обрезание юбки, сегодня же ночью. Скоро двадцать лет как вместе работаем, а не знал воевода, что ноги его экономки, как у царицы Савской – кривые и волосатые – отсюда и юбки длинные. Тетка-то мудрой оказалась. Столько лет сей дефект скрывала.
Рабочий день начался бурно. Кабинеты заполнились энергией, энергетикой и главным энергетиком. Энергетик совершал непонятные движения, то быстро взбирался на лестницу и что-то крутил в светильниках, то камнем падал вниз, ползал под столами. Скоро аттестация рабочих мест – пояснил инженер по охране труда, он проверяет освещенность и электропроводку.
Все кружилось в вихре, бегали сотрудники, назойливо звонил телефон. С первого взгляда могло показаться, что три буквы и две цифры так действовали на народ, но КТУ 0,6 в прошлом. В стране уже 20 лет кризис, за ворота не выпускают, поэтому даже 0,6 тратить были не на что. Просто люди любят свою работу всем сердце и не могут иначе.
Фирма стала похожа на улей. Приходили заказчики. Обалдевали от красивых женщин, дорогой техники и других возможностей фирмы. Жутко завидовали директору, оставляли кучу денег, заказывали часто не нужную услугу, лишь бы еще раз попасть сюда и взглянуть на эту дивную семью.
Кофе-паузы, обеды проходили за одним большим столом и радовали глаз повара и зам.директора по общим вопросам.
Каждый день, иногда и в выходной приходил юрист. Он когда-то здесь работал, теперь возглавляет горсуд, рег.палату и ЗКП одновременно, но забыть семью не может никак. Он рассказывал последние детективные новости, оглашал курсы национальных валют и брал новый паяльник для работы с дебиторами. Милый юноша. Но последнее время любил выпить пива и полихачить на своем мустанге, поэтому ночевать ни в какую не оставался.
Очень часто фирму навещал святой в миру - Чеснок. Ему единственному из мужчин разрешалось калобродить между этим миром и тем. Ему были рады все. Он приносил девчонкам с большой земли экзотическую косметику и прикольное нижнее белье на своей вкус, как правило, от белья пахло или мандаринами или яблоками. Но больше всего народ ждал Чеснока потому, что он в тайне от отца приносил народу письма от родных, которые на той стороне забора тоже создали семью и дружно рыли под монастырем и рекой тайный ход к NN-й 03.
Сегодня писем было как никогда. Муж начальника отдела кадров писал, что уже выловил всю рыбу во всей Ленинградской области, и что если она не вернется домой, он приступит в Новгородской, Псковской и Вологодской области. Начальнику ПТО писали две милые дочки, одна возглавляла теперь Майкрософт, другая Визарт софт и что если их допустят повидаться, то обе эти фирмы будут пожизненно обеспечивать компанию программным обеспечением. Сын зам.начальника заканчивал академию тыла и транспорта и собирался дальше учится на чекиста. Аннушка Анькова возглавила теперь в городе управление ЖКХ и предложила сдать процветающую теперь деревушку Норку без боя, по хорошему. Сын экономки и сын зав.складом организовали фирму по ремонту авто, мотто, вело, электро, газо и т.д. техники и очень назойливо рекомендовали свои услуги фирме, но фирма пока молчала.
Иногда приходил в фирму странный, загримированный в бороду мужчина, под видом компьютерщика, но ремонтировал он всегда один и тот же компьютер главного бухгалтера, а затем очень долго писал ей, что именно он сделал, а сейчас он писал, что их внук (гл.буха и компьюторщика) жениться следующей весной и ему хотелось, чтобы бабушка тоже была на его свадьбе.
Агент-Чеснок не интересовал лишь инженера ПТО . Эта девушка так углубилась в освоение всего нового: компьютерных программ, спец.приложений, техники и т.д. Она считала, читала, снимала кино, была редактором фирменной газеты, курила трубку прямо в своем кабинете и снимала закат прямо из окна офиса, причем каждый день, затем проводила сравнительный анализ и передавала данные в бухгалтерию. Там путем неимоверных расчетов ведущий бухгалтер делала через Интернет покупки материалов и оборудования. Климат стал теплее, работать придется круглосуточно все 366 дней в году - материалы очень пригодятся.
Рабочий день близился к концу. Интересная и объемная работа плюс весточки от родных слегка утомили народ. Поэтому вечернее удаление гланд прошло как под наркозом.
19.00 русская традиция на японский манер. Сначала мужчины все вместе принимают ванну, после них в этой воде моются девчонки. Экономия. Но все привыкли и даже находят в этом что-то прикольное, а иногда находят кем-то забытые вещи.
Ужин – русская традиция на шведский манер. Много, долго и очень сытно.
За ужином в уголку стола сидели матушка с батюшкой. Батюшка чему-то тихо улыбался. Как хорошо, что они все здесь, рядом, думал он, в голове у него просто роились проекты новых работ и нового ремонта офиса.
Матушка думала, чтобы новенького сотворить к 20-летию фирмы. Надо парням каждому купить по отдельной кровати вместо старых духярусных. А девчонкам – всем по новому наряду. Тем более, что экономка рыдая просила отдать ей на платье старую зеленую занавеску из архива. Тут она молодец – умеет экономить.
Вставить ссылку во флеш-баннер
Последовательность шагов по установке ссылки во флеш-баннер:
1. создать новый слой (поверх всех остальных)
2. нарисовать на нем прямоугольник, который перекрывал бы собой все рабочее пространство ролика
3. выделить этот прямоугольник, нажать F8 и выбрать тип мувиклипа — button, и нажать ок. прямоугольник — сплошной, залитый внутри.
4. двойной клик по прямоугольнику — мы попадаем внутрь кнопки
(таймлайн должен отображать 4 кадра — normal, hover, down, hit), нужно схватить в таймлане мы??кой первый кадр (normal) и перетащить его в 4ый кадр — hit, таймлайн должен выглядеть так: три пустых кадра, а в четвертом — на?? прямоугольник
5. теперь вверху закладки — Stage и название на??ей кнопки – кликите по Stage, чтобы вернуться в основной ролик. ролик теперь должен быть покрыт голубым полупрозрачным треугольником
6. растяните теперь его на таймлайне на всю длину ролика (можно поставить курсор в последний кадр и нажать f5)
7. кликнуть этот прямоугольник — он выделится голубой рамкой, и нажать F9 — откроется окно скриптов
8. добавить текст следующего содержания:
on(release)
{
getURL(«http://mysite»);
}
БАСТА!!!





