они будут копиться так как имя файла, это хэш запроса. то-есть, чем больше разных запросов, тем больше файлов. если сервер выдержит нагрузку, то можно попробовать сделать так
разумеется, сверху надо убрать все проверки иначе они будут просто молотить впустую.
но это опять же большая нагрузка на вычислительные ресурсы. если картинка маленькая - вопросов нет. если картинка размером от 1600х1200 и больше, то нагрузка на процессор уже будет приличная.
это как раз тот кусочек кода, который создает на диске файл
зы.
Для правильной работы любых скриптов, связанных с записей/считыванием данных с диска, надо указывать абсолютный путь к файлу. что-то вроде $file_path = $_SERVER['DOCUMENT_ROOT'] . '/filename.txt '; Иначе в работе скриптов появляется очень много неизвестных.
iccup#: Работает! Спасибо. Этот скрипт больше для личного пользования, потоков будет немного.
тут дело в том, что любое дерганье скрипта приведет к созданию нового файла. Чтобы этого не было нужно поступить следующим образом
$new_filename = md5( $text ) . ".jpg";
Привязать имя файла к GET запросу и еще можно сделать проверочку вида
//вставить после $text = $_GET['text'];
$new_filename = md5($text).".jpg"; if ( file_exists( $new_filename )) { $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $url = str_replace("i.php", $new_filename, $url); header('Location: '.$url); die(); /* или любой другой способ прервать выполнение функции, если это функция */ }
ну и ессно убрать присвоение имени внизу тогда имя файла будет строго привязано к гет запросу и если запрос повторяется, то файл будет браться сразу с диска пропуская процесс создания. То-есть диск будет работать как кэш.
// ну и соответственно $url = str_replace("i.php", $new_filename, $url);
А вообще надо бы по-хорошему мануалы на пы-хы-пы почитать.
АПД Причина сего совета проста. если у вас будет 1 запрос, ок ручками удалите... А если будет 500 000? У вас тупо ляжет сервак из-за переполнения файлового буфера операционной системы.
поэтому создавать надо файл в памяти и выдавать его из памяти, а после выполнения скрипта память очищать.
Вы же перехватываете клик с помощью яваскрипта. Что мешает передавать данные им же? А там их уже можно гнать как угодно. Хоть гетом, хоть постом, хоть в http заголовки запихать (правда это моветон)
Solmyr#: А... ну если сервер с 24 Гб диска это для вас дорого, то тогда да, тогда другое дело, извините не понял о каких масштабах цифр речь идет. У меня сайт по недвижимости занимает ~10 Тб и пять серверов, но в деньгах это порядка 200 евро в месяц.
чёт дохрена она у вас в серверах занимает. Руки, помнится на 7 серверах на выдачу крутились 300к в день спокойно совершенно в пике до млн. + еще несколько стоек для внутренних служб.
(24 гб это копейки. После того, как я всё забросил, я всё скинул на обычный виртуальных хостинг за 400р/мес, где оно спокойно и сидит. А когда проект развивался у меня был арендованный 2U дедик в стойке, а он денежку поджирал. )
если сервер выдержит нагрузку, то можно попробовать сделать так
header('Content-Type: image/jpeg');вместоimagejpeg($img);
imagedestroy($img);
разумеется, сверху надо убрать все проверки иначе они будут просто молотить впустую.
но это опять же большая нагрузка на вычислительные ресурсы.
если картинка маленькая - вопросов нет. если картинка размером от 1600х1200 и больше, то нагрузка на процессор уже будет приличная.
вы зря убрали снизу
это как раз тот кусочек кода, который создает на диске файл
зы.
Для правильной работы любых скриптов, связанных с записей/считыванием данных с диска, надо указывать абсолютный путь к файлу.
что-то вроде $file_path = $_SERVER['DOCUMENT_ROOT'] . '/filename.txt ';
Иначе в работе скриптов появляется очень много неизвестных.
Работает! Спасибо. Этот скрипт больше для личного пользования, потоков будет немного.
тут дело в том, что любое дерганье скрипта приведет к созданию нового файла. Чтобы этого не было нужно поступить следующим образом
$new_filename = md5( $text ) . ".jpg";Привязать имя файла к GET запросу
и еще можно сделать проверочку вида
ну и ессно убрать присвоение имени внизу
тогда имя файла будет строго привязано к гет запросу и если запрос повторяется, то файл будет браться сразу с диска пропуская процесс создания. То-есть диск будет работать как кэш.
imagejpeg($img, "1.jpg");Замените наА вообще надо бы по-хорошему мануалы на пы-хы-пы почитать.
АПД
Причина сего совета проста.
если у вас будет 1 запрос, ок ручками удалите... А если будет 500 000?
У вас тупо ляжет сервак из-за переполнения файлового буфера операционной системы.
поэтому создавать надо файл в памяти и выдавать его из памяти, а после выполнения скрипта память очищать.
см. первый пример к мануалу
https://www.php.net/manual/en/function.imagejpeg.php
А там их уже можно гнать как угодно. Хоть гетом, хоть постом, хоть в http заголовки запихать (правда это моветон)
Типовые пользователи описаны?
index = t.parents('.v3').find('div.iw').index( t.parent() );А... ну если сервер с 24 Гб диска это для вас дорого, то тогда да, тогда другое дело, извините не понял о каких масштабах цифр речь идет. У меня сайт по недвижимости занимает ~10 Тб и пять серверов, но в деньгах это порядка 200 евро в месяц.
чёт дохрена она у вас в серверах занимает. Руки, помнится на 7 серверах на выдачу крутились 300к в день спокойно совершенно в пике до млн. + еще несколько стоек для внутренних служб.
(24 гб это копейки. После того, как я всё забросил, я всё скинул на обычный виртуальных хостинг за 400р/мес, где оно спокойно и сидит. А когда проект развивался у меня был арендованный 2U дедик в стойке, а он денежку поджирал. )