| |
|
|
| | Помогите с такой проблемой.
С помощью GD2 рисуется круговая диаграмма на основе двух массивов: массив данных и массив имен в легенде, естессна число элементов одинкаовое...
В итоге делаю:
ImageGIF($im, "gen\diagramma.gif");
echo "<img src=\"gen\\diagramma.gif\" border=\"1\">";
|
Проблема в том, что при последующем обращении к скрипту если массив данных меняет свои значения, то и картинка должна изменица, но она не меняется - остается предыдущая.....
Приходица рефрешить страницу вручную по F5....
З.Ы. Хедеры уже отосланы..... | |
| |
|
|
| |
|
|
| |
для: klex
(25.01.2008 в 22:34)
| | | Мне говорят нужно отменить кэширование браузером, так ли это и если так то как это сделать?
Или можно как-то заменить хедеры? | |
| |
|
|
| |
|
|
| |
для: klex
(25.01.2008 в 22:34)
| | | добавляем get параметр, чтоб бралось не из кеша
<?php
ImageGIF($im, "gen\diagramma.gif");
echo "<img src=\"gen/diagramma.gif?".time()."\" border=\"1\">";
?>
|
а изменить головы можно включив буферизацию
<?php
// В начале скрипта пишем
ob_start();
?>
|
ob_start() | |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(26.01.2008 в 22:20)
| | | ob_start()
=========================
вольный перевод translate.ru:
=========================
Эта функция повернет продукцию buffering на. В то время как продукция buffering активна, никакую продукцию не посылают от подлинника (кроме ударов головой), вместо этого продукция сохранена во внутреннем буфере. Содержание этого внутреннего буфера может быть скопировано в переменную вереницы, использующую ob_get_contents (). К продукции, что сохранено во внутреннем буфере, использование ob_end_flush (). Альтернативно, ob_end_clean () тихо откажется от буферного содержания. | |
| |
|
|
| |
|
|
| |
для: elenaki
(27.01.2008 в 15:31)
| | | Помилуйте!
This function will turn output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer.
The contents of this internal buffer may be copied into a string variable using ob_get_contents(). To output what is stored in the internal buffer, use ob_end_flush(). Alternatively, ob_end_clean() will silently discard the buffer contents.
Вольный перевод меня:
Эта функция включает режим накапливания выходного потока.
Пока этот режим активен, скрипт не отправляет выходной поток, а накапливает его во внутреннем буфере.
Содержимое этого буфера может быть скопировано в строковую переменную путем вызова функции ob_get_contents().
Чтобы вывести накопленное содержимое в выходной поток, используйте функцию ob_end_flush()
Чтобы отказаться от вывода - очистить буфер, стерев накопленное в нем содержимое - вызовите функцию ob_end_clean()
Хотя в чем-то Вы правы. Для всех, кому это цитируют, оба перевода - филькина грамота равного, в общем-то, смысла. Применять эти функции стоит лишь тем, кто ни в каком переводе не нуждается. | |
| |
|
|
| |
|
|
| |
для: Trianon
(27.01.2008 в 16:57)
| | | как вариант:
<img src="diagramma.php">
<?php
$fh = fopen("diagramma.gif","rb");
header("Cache-Control: max-age=0");
header("Content-type: image/gif");
fpassthru($fh);
fclose($fh);
?>
|
можно ещё подсчитать хеш: $md5 = md5_file("diagramma.gif");
и вывести в заголовок, если неошибаюсь так: header("Object-id: $md5");
этот вариант должен быть надёжней, имхо ;) | |
| |
|
|
| |
|
|
| |
для: jbs
(27.01.2008 в 18:41)
| | | подсчитать хеш лучше один раз. Это всё ж операция ресурсоемкая.... | |
| |
|
|
| |
|
|
| |
для: elenaki
(27.01.2008 в 15:31)
| | | to elenaki
translate.ru
Полная чушь, и причем технического языка он абсолютно не понимает.
Следствие всего этого, полный идиотизм этого перевода, который можно послать на bash.org.ru :) | |
| |
|
|
| |
|
|
| |
для: elenaki
(27.01.2008 в 15:31)
| | | ....кроме ударов головой....
....Альтернативно, ob_end_clean () тихо откажется от буферного содержания....
Я паццталом... Точно на баш отправить надо... :)))) | |
| |
|
|
| |
|
|
| |
для: CrazyAngel
(26.01.2008 в 22:20)
| | | CrazyAngel, бальшое человеческое спасибо. | |
| |
|
|