X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Смена картинки при перезагрузке
Xap_mw
Xap_mw
Topic Starter сообщение 17.4.2009, 21:42; Ответить: Xap_mw
Сообщение #1


где-то на форуме когда-то скачал вот этот файл:
<?php
$folder = '.';
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$img = null;
if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder.$fileList[$imageNumber];
}
}
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
} else {
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (100, 100)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
imagestring ($im, 2, 5, 5, "IMAGE ERROR", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>

А мне надо, чтобы он выводил не случайную картинку из списка а по порядку. В папке header три картинки под нумерацией 1,2,3 и чтобы он выводил поочередно. Можно ли такое сделать? И еще один вопрос. Во всех браузерах выполнение этого кода не всегда срабатывает. Точнее бывает перезагружаешь, а картинка остается та же самая. Или например (у меня два таких кода стоит random.php и random1.php? которые одновременно одноименные файлы из разных папок должны выводить на страницу) верхняя картинка остается та же, а нижняя часть уже другая и получается что картинка собрана из разных файлов. Так не должно быть. Как это исправить?

Заранее благодарен.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Xap_mw
Xap_mw
Topic Starter сообщение 17.4.2009, 22:29; Ответить: Xap_mw
Сообщение #2


Еще одна проблема. Когда несколько раз понажимаешь на страницы, шапка из файлов выводимых этим кодом просто перестает изменяться. То ест файлы, которые были при последне загрузке страницы остаются такими же.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.4.2009, 18:17; Ответить: ZiTosS
Сообщение #3


Xap, сделать всё можно. Достаточно либо сессиях хранить счётчик, либо в файле для данного счётчика. Если в сессиях, то
//Если сессия ещё не создана или счётчик равен 3
$_SESSION['count'] = (empty($_SESSION['count']) || $_SESSION['count'] == 3) ? 1 : $_SESSION['count'];

По поводу того, что загружается та же картинка во всём виновато кеширование.
Достаточно в строке с адресом после "?" страницы к которой мы обращаемся передавать случайное число... Либо есть возможность на PHP отменять кеширование
Пункт Как я отменяю кеширование страниц браузером
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.4.2009, 21:09; Ответить: ZiTosS
Сообщение #4


<?php
session_start();
$_SESSION['count'] = (empty($_SESSION['count']) || $SESSION['count'] == 3) ? 1 : $_SESSION['count']+1;

$folder = '.';
$extList = array();
$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';
$img = null;
if (substr($folder,-1) != '/') {
$folder = $folder.'/';
}
if (isset($_GET['img'])) {
$imageInfo = pathinfo($_GET['img']);
if (
isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
file_exists( $folder.$imageInfo['basename'] )
) {
$img = $folder.$imageInfo['basename'];
}
} else {
$fileList = array();
$handle = opendir($folder);
while ( false !== ( $file = readdir($handle) ) ) {
$file_info = pathinfo($file);
if (
isset( $extList[ strtolower( $file_info['extension'] ) ] )
) {
$fileList[] = $file;
}
}
closedir($handle);
if (count($fileList) > 0) {
$imageNumber = $_SESSION['count'];
$img = $folder.$fileList[$imageNumber];
}
}
if ($img!=null) {
$imageInfo = pathinfo($img);
$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
header ($contentType);
readfile($img);
} else {
if ( function_exists('imagecreate') ) {
header ("Content-type: image/png");
$im = @imagecreate (100, 100)
or die ("Cannot initialize new GD image stream");
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0,0,0);
imagestring ($im, 2, 5, 5, "IMAGE ERROR", $text_color);
imagepng ($im);
imagedestroy($im);
}
}
?>


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на первый заказ.
Мегамаркет. Скидка 1000 рублей при покупке от 5000 рублей на все, на п
7 stu999 1759 31.3.2024, 11:19
автор: stu999
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыКто и зачем покупает картинки обезьян по $200 тысяч?
NFT
167 metvekot 27447 6.3.2024, 21:58
автор: Boymaster
Открытая тема (нет новых ответов) Получил странную ссылку при линкбилдинге
Как поведет себя поиск при обнаружении странной ссылке?
10 r0mZet 2206 24.10.2022, 19:23
автор: Wachowski
Горячая тема (нет новых ответов) 300 площадок под вечные ссылки на выбор: ТИЦ 20-9400, PR 0-6, ЯК, DMOZ. Скидки при пакетном заказе!
65 inkon 30398 19.7.2022, 13:41
автор: Funoman
Горячая тема (нет новых ответов) тИЦ отменили! Новый показатель Яндекса ИКС! Лучшие площадки под размещение. Бесплатное написание статей при любом заказе.
Эксклюзивное предложение. Успей получить написание статей БЕСПЛАТНО
71 VIMstat 78516 21.6.2022, 9:38
автор: VIMstat


 



RSS Текстовая версия Сейчас: 26.4.2024, 3:42
Дизайн