Отправляет email-рассылки с помощью сервиса Sendsay

Random image

Всем привет!

Я хочу сделать так, чтобы на главной странице сайта случайным образом
выводилась картинка. В папке /rand_image/ рисунки 001.jpg, 002.jpg и
т.д....
Наверняка кто-то из вас делал подобное, может быть у кого-то есть
готовый скрипт?

Ответить   Илья Sat, 23 Apr 2005 15:23:27 +0800 (#355994)

 

Ответы:

Привет, Илья!

Да, таких вопросов я еще не видел. :) Или ты PHP не знаешь? Потому как
даже если не писал подобного скрипта, написать одну строчку по-моему
не очень сложно. К примеру, так:

<img src="<?php echo sprintf("%03d", rand(1, 250)); ?>.jpg">

Пашка

23 апреля 2005 г., 11:23:27, Илья <jackso***@r*****.com> wrote:





библиотекa сайтостроительства http://www.i2r.ru/static/244/

Ответить   Sat, 23 Apr 2005 10:35:23 +0400 (#355995)

 

:))) Не знаю. Я решил начать с Perl.
Нет, всё, - пора заняться PHP!

У кого-нибудь есть электронный учебник по PHP? А то бумажную книжку не
охота покупать.

"%03d" - это значит, что число состоит из 3х знаков?

Saturday, April 23, 2005 - 2:35:23 PM, Пашка <pav***@l*****.ru> wrote:

Ответить   Илья Sun, 24 Apr 2005 11:06:24 +0800 (#356300)

 

В Perl это будет выглядеть на чуть-чуть посложнее только из-за того,
что Perl - это изначально программа, а PHP - изначально HTML. И все.

Да. Число состоит из трех знаков, в случае меньшего числа оно
дополняется слева нулями. В Perl будет абсолютно тот же синтаксис:

print <<EOF
начало HTML-страницы
EOF
print '<img src="' . sprintf("%03d", int(rand 250)) . '.jpg">';
print <<EOF
конец HTML-страницы
EOF

Пашка

24 апреля 2005 г., 7:06:24, Илья <jackso***@r*****.com> wrote:





библиотекa сайтостроительства http://www.i2r.ru/static/244/

Ответить   Mon, 25 Apr 2005 09:33:04 +0400 (#356800)

 

Привет, Илья!

Предлагаю самый удобный способ от A List Apart.

1. Создаёшь art.php как написано ниже
2. В HTML выводишь картинку: <img src="http://example.com/art.php">

<?php

/*

AUTOMATIC IMAGE ROTATOR
Version 2.2 - December 4, 2003
Copyright (c) 2002-2003 Dan P. Benjamin, Automatic, Ltd.
All Rights Reserved.

http://www.hiveware.com/imagerotator.php

http://www.automaticlabs.com/


DISCLAIMER
Automatic, Ltd. makes no representations or warranties about
the suitability of the software, either express or
implied, including but not limited to the implied
warranties of merchantability, fitness for a particular
purpose, or non-infringement. Dan P. Benjamin and Automatic, Ltd.
shall not be liable for any damages suffered by licensee
as a result of using, modifying or distributing this
software or its derivatives.


ABOUT
This PHP script will randomly select an image file from a
folder of images on your webserver. You can then link to it
as you would any standard image file and you'll see a random
image each time you reload.

When you want to add or remove images from the rotation-pool,
just add or remove them from the image rotation folder.

VERSION CHANGES
Version 1.0
- Release version

Version 1.5
- Tweaked a few boring bugs

Version 2.0
- Complete rewrite from the ground-up
- Made it clearer where to make modifications
- Made it easier to specify/change the rotation-folder
- Made it easier to specify/change supported image types
- Wrote better instructions and info (you're them reading now)
- Significant speed improvements
- More error checking
- Cleaner code (albeit more PHP-specific)
- Better/faster random number generation and file-type parsing
- Added a feature where the image to display can be specified
- Added a cool feature where, if an error occurs (such as no
images being found in the specified folder) *and* you're
lucky enough to have the GD libraries compiled into PHP on
your webserver, we generate a replacement "error image" on
the fly.

Version 2.1
- Updated a potential security flaw when value-matching
filenames

Version 2.2
- Updated a few more potential security issues
- Optimized the code a bit.
- Expanded the doc for adding new mime/image types.

Thanks to faithful ALA reader Justin Greer for
lots of good tips and solid code contribution!

INSTRUCTIONS
1. Modify the $folder setting in the configuration section below.
2. Add image types if needed (most users can ignore that part).
3. Upload this file (rotate.php) to your webserver. I recommend
uploading it to the same folder as your images.
4. Link to the file as you would any normal image file, like this:

<img src="http://example.com/rotate.php">

5. You can also specify the image to display like this:

<img src="http://example.com/rotate.php?img=gorilla.jpg">

This would specify that an image named "gorilla.jpg" located
in the image-rotation folder should be displayed.

That's it, you're done.

*/

/* CONFIGURATION Set $folder to the full path to the location of your images.
For example: $folder = '/user/me/example.com/images/';
If the rotate.php file will be in the same folder as your
images then you should leave it set to $folder = '.';

*/

$folder = '.';

/*

Most users can safely ignore this part. If you're a programmer,
keep reading, if not, you're done. Go get some coffee.

If you'd like to enable additional image types other than
gif, jpg, and png, add a duplicate line to the section below
for the new image type.

Add the new file-type, single-quoted, inside brackets.

Add the mime-type to be sent to the browser, also single-quoted,
after the equal sign.

For example:

PDF Files:

$extList['pdf'] = 'application/pdf';

CSS Files:

$extList['css'] = 'text/css';

You can even serve up random HTML files:

$extList['html'] = 'text/html';
$extList['htm'] = 'text/html';

Just be sure your mime-type definition is correct!

*/

$extList = array();

$extList['gif'] = 'image/gif';
$extList['jpg'] = 'image/jpeg';
$extList['jpeg'] = 'image/jpeg';
$extList['png'] = 'image/png';

// You don't need to edit anything after this point.

// END CONFIGURATION $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);
}
}

Ответить   Mon, 25 Apr 2005 15:37:58 +0400 (#357041)