Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Скрипт создающий график биоритмов - сохранить результат в файл

Сообщения:  [1-8] 

 
 автор: Fighter   (06.04.2007 в 16:33)   письмо автору
 
   для: XPraptor   (06.04.2007 в 16:32)
 

ВСЕ, всем спасибо, проблема была у хостера :)) сори за глупость что сразу у них не спросил !

   
 
 автор: XPraptor   (06.04.2007 в 16:32)   письмо автору
 
   для: XPraptor   (06.04.2007 в 16:31)
 

По идее файл должен быть с таким именем уже. Создайте пустышку с такими именем и попробуйте записать в нее.

   
 
 автор: XPraptor   (06.04.2007 в 16:31)   письмо автору
 
   для: Fighter   (06.04.2007 в 16:27)
 

Что не получается? Файл создается с таким именем?

   
 
 автор: Fighter   (06.04.2007 в 16:27)   письмо автору
 
   для: XPraptor   (06.04.2007 в 16:22)
 

ВСЕ, всем спасибо, проблема была у хостера :)) сори за глупость что сразу у них не спросил !

   
 
 автор: XPraptor   (06.04.2007 в 16:22)   письмо автору
 
   для: Fighter   (06.04.2007 в 16:21)
 

Не факт .Укажи обязательно полный путь $_SERVER["DOCUMENT_ROOT"] . "/test.png" вот это гарантированно в корень сайта.

   
 
 автор: Fighter   (06.04.2007 в 16:21)   письмо автору
 
   для: XPraptor   (06.04.2007 в 16:19)
 

Ну так я же и пишу imagePNG($image,"test.png"); т.е. сохранять в корень этой папки где и сам скрипт... права стоят на запись в папку...

   
 
 автор: XPraptor   (06.04.2007 в 16:19)   письмо автору
 
   для: Fighter   (06.04.2007 в 16:16)
 

при выводе в конце imagePNG($image) если укажешь путь к файлу, то он выведет в файл.
imagePNG($image, "путь/мой_файл.png")

   
 
 автор: Fighter   (06.04.2007 в 16:16)   письмо автору
 
 

Здравтсвйте !

Скажите пожалуйста, есть скрипт делающий график биоритмов, сам по себе он рабочий, но пытаюсь прикрепить к сайту, есть такие вопросы, например мне надо сохранить этот график в файл как это сделать ??? вот сам скрипт

<?php


//
// Функция преобразования даты по григорианскому календарю
// в юлианский календарь (количество дней)
//
function gregorianToJDa($month, $day, $year)
{


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 ----



// выделяем день, месяц и год
$birthMonth = substr($birthdate, 0, 2);
$birthDay = substr($birthdate, 3, 2);
$birthYear = substr($birthdate, 6, 4);

// Проверяем правильности ввода
if(!checkDate($birthMonth, $birthDay, $birthYear))
{


print("The date '$birthMonth/$birthDay/$birthYear' Данные не верны.");



exit();
}

// параметры графика (глобальные переменные)
$diagramWidth = 710;
$diagramHeight = 400;
$daysToShow = 30;

//определяем, сколько дней человек прожил до текущей даты используя юлианский календарь.
$daysGone = abs(gregorianToJDa($birthMonth, $birthDay, $birthYear)
- gregorianToJDa(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");


// задаем чересстрочный режим
imageInterlace($image, 1);

// делаем цвет фона прозрачным
imageColorTransparent($image, $colorBackgr);

// и выводим изображение
//imageGIF($image);

header("Content-type: image/png");
imagePNG($image);

?>

на экран он выводится, но если я напишу
header("Content-type: image/png");
imagePNG($image,"test.png");

в файл test.png ничего не сохраняется пишет "Warning: imagepng() [function.imagepng]: Unable to open 'test.png' for writing in..."

Почему не происходит сохранение ???

Файла токого нету, права на папку стоят 777 файл должен создаваться в тойже папке что и скрипт, соответственно просто пишу test.png ....

И еще такой вопрос а реально ли сделать так, не сохранять в файл, а выводить на экран только не сразу а примерно вот так

файл 1.php

<?
тут подключается файл со скриптом где последняя строчка это отправка заголовка
.......
....
header("Content-type: image/png");
?>
Тут HTML
<html>
<head>
<...>
....
....
...
затем
<?
imagePNG($image);
?>
...
...
</html>
конец файла

я так пробовал писать но выводится не картинка а куча иероглифов !

Заранее Благодарю !

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования