Реклама на сайте Advertise with us

Php/perl скрипт нужен

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 21.04.01
Сообщения: 666
Рейтинг: 436

Ссылка на сообщениеДобавлено: 03/02/06 в 03:09       Ответить с цитатойцитата 

может есть у кого простенький скрипт который выводит на пагу
все пиксы из папки в которой он находится.
в папке по 50-300 пикс и чтобы выбрать из всех несколько нужных,
то приходится каждую смотреть отдельно.
а так мне проще зделать на все пиксы тумбы и их уже смотреть.

0
 



С нами с 26.09.03
Сообщения: 856
Рейтинг: 783

Ссылка на сообщениеДобавлено: 03/02/06 в 04:00       Ответить с цитатойцитата 

держи
Код:

<?php

/* Select your charset
*/
$charset = 'ISO-8859-1';

/* How many images per page?
*/
$maxpics = 20;

/* Create thumbnails in this subfolder
*/
$thumbdir = 'thumbs';

/* Size of created thumbnails
*/
$thumbsize = 150;

/* Wether to show file names (true or false)
*/
$filenames = false;

/* Wether to show subdirectores (true or false)
*/
$subdirs = true;

/* Wether to show a title (true or false)
*/
$title = true;

/* Set the gallery root relative to the script's directory.
*
* If you include() this script, set the path relative to
* the directory of the script, that does the include().
*/
$picdir = '.';

/* Set this to true if you include() this script.
*/
$included = false;

/* Set this to true, if you include() this script and want the images
* to be shown inline.
*/
$inline = true;

/* Set the thumbnail background color, if you include() this script.
*/
$bg = 'FFFFFF';

/* ------------------------------------------------------------------------- */
$words = array(
'gallery' => 'gallery',
'error' => 'Error',
'php_error' => 'PHP >= 4.1 is required.',
'gd_error' => 'GD Library is required. See http://www.boutell.com/gd/.',
'jpg_error' => 'JPEG software is required. See ftp://ftp.uu.net/graphics/jpeg/.',
'mkdir_error' => 'Write permission is required in this folder.',
'opendir_error' => 'The directory "%1" can not be read.'
);
isset($_SERVER) || ($error = error('php'));
function_exists('imagecreate') || ($error = error('gd'));
function_exists('imagejpeg') || ($error = error('jpg'));
if (function_exists('ini_set')) @ini_set('memory_limit', -1);
$jpg = '\.jpg$|\.jpeg$'; $gif = '\.gif$'; $png = '\.png$';
$fontsize = 2;
function word ($word) {
global $words;
return html($words[$word]);
}
function html ($word) {
global $charset;
return htmlentities($word, ENT_COMPAT, $charset);
}
function error ($word, $arg = '') {
global $words;
return html(str_replace('%1', $arg, $words[$word .'_error']));
}
if (!$included) {
echo('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=' . $charset . '" />
<style type="text/css">
body { font-family: sans-serif }
hr { border-style: none; height: 1px; background-color: silver; color: silver }
p { margin: 0px; padding: 0px }
#pagenumbers { text-align: center; margin: 0px 1em 0px 1em }
img { margin: 10px; border: none }
a { text-decoration: none }
');
if ($filenames) {
  echo('div a p { font-size: small }
a:hover p { text-decoration: underline }
div { width: ' . ($thumbsize + 20) . 'px; text-align: center; float: left; margin: 1em }
');
}
echo("</style>\n");
}
$delim = DIRECTORY_SEPARATOR;
if (array_key_exists('dir', $_REQUEST) && $subdirs) $dir = $_REQUEST['dir'];
else $dir = '';
if (!empty($_SERVER['PATH_TRANSLATED'])) $d = dirname($_SERVER['PATH_TRANSLATED']);
elseif (!empty($_SERVER['SCRIPT_FILENAME'])) $d = dirname($_SERVER['SCRIPT_FILENAME']);
else $d = getcwd();
$delim = (substr($d, 1, 1) == ':') ? '\\' : '/';
$rp = function_exists('realpath');
if ($rp) $root = realpath($d . $delim . $picdir);
else $root = $d . $delim . $picdir;
if ($rp) $realdir = realpath($root . $dir);
else $realdir = $root . $dir;
if (substr($realdir, 0, strlen($root)) != $root) { $realdir = $root; $dir = ''; }
$dirname = substr($realdir, strlen($root));
$dirnamehttp = $picdir . $dir;
if ($delim == '\\') $dirnamehttp = strtr($dirnamehttp, '\\', '/');
if (substr($dirnamehttp, 0, 2) == './') $dirnamehttp = substr($dirnamehttp, 2);
if (empty($dirnamehttp)) $dirnamehttp = '.';
$ti = ($subdirs && !empty($dirname)) ? ": $dirname" : '';
if (!$included) {
if (isset($error)) echo("<title>$error</title>");
else echo('<title>' . word('gallery') . html($ti) . "</title>\n");
echo("</head>\n<body>\n");
}
if (($d = @opendir($realdir)) === false) $error = error('opendir', array($realdir));
if (isset($error)) echo("<p style=\"color: red\">$error</p>\n"); else {
if ($title) echo('<h1>' . word('gallery') . html($ti) . "</h1>\n<hr />\n");
$dirs = $pics = array();
$query = $jpg;
if (function_exists('imagecreatefromgif')) $query .= "|$gif";
if (function_exists('imagecreatefrompng')) $query .= "|$png";
while (($filename = readdir($d)) !== false) {
  if ($filename == $thumbdir
   || ($filename == '..' && $dirname == '')
   || ($filename != '..' && substr($filename, 0, 1) == '.')) continue;
  $file = $realdir . $delim . $filename;
  if (is_dir($file)) $dirs[] = $filename;
  elseif (eregi($query, $file)) $pics[] = $filename;
}
closedir($d);
sort($dirs);
sort($pics);
$urlsuffix = '';
foreach ($_GET as $v => $r) {
  if (!in_array($v, array('dir', 'pic', 'offset'))) $urlsuffix .= "&$v=" . urlencode($r);
}
if ($included && $inline && array_key_exists('pic', $_REQUEST)) {
  $pic = $_REQUEST['pic'];
  echo("<div id=\"picture\">\n");
  echo('<img src="' . html("$dirnamehttp/{$pics[$pic]}") . '" alt="' . html(basename($pics[$pic])) . '"');
  list($width, $height, $type, $attr) = @getimagesize($pic);
  if (!empty($width)) echo(" style=\"width: {$width}px; height: {$height}px\"");
  echo(" />\n");
  $url = ($dirname  == '') ? '?' : '?dir=' . urlencode($dirname) . '&';
  echo("<hr />\n");
  if ($pic > 0)
  echo('<a href="' . html($url) . 'pic=' . ($pic - 1) . html($urlsuffix) . '">[&lt;]</a> ');
  if ($pic >= $maxpics)
  $u = "{$url}offset=" . (floor($pic / $maxpics) * $maxpics) . $urlsuffix;
  else {
   if (array_key_exists('dir', $_REQUEST)) {
    $u = substr($url, 0, strlen($url) - 1) . $urlsuffix;
   } else {
    $u = ereg_replace('^([^?]+).*$', '\1', $_SERVER['REQUEST_URI']);
    if (!empty($urlsuffix)) {
     if (strstr($u, '?') === false) $u .= '?' . substr($urlsuffix, 1);
     else $u .= $urlsuffix;
    }
   }
  }
  echo('<a href="' . html($u) . '">[-]</a>');
  if ($pic + 1 < sizeof($pics))
  echo(' <a href="' . html($url) . 'pic=' . ($pic + 1) . html($urlsuffix) . '">[&gt;]</a>');
  echo("\n</div>\n");
} else {
  if (sizeof($dirs) > 0 && $subdirs) {
   echo("<ul id=\"directories\">\n");
   foreach ($dirs as $filename) {
    if ($rp) $target = substr(realpath($realdir . $delim . $filename), strlen($root));
    else $target = substr($realdir . $delim . $filename, strlen($root));
    if ($delim == '\\') $target = strtr($target, '\\', '/');
    if ($target == '') {
     $url = ereg_replace('^([^?]+).*$', '\1', $_SERVER['REQUEST_URI']);
     if (!empty($urlsuffix)) {
      if (strstr($url, '?') === false) $url .= '?' . substr($urlsuffix, 1);
      else $url .= $urlsuffix;
     }
    } else $url = '?dir=' . urlencode($target) . $urlsuffix;
    echo('<li><a href="' . html($url) . '">' . html($filename) . "</a></li>\n");
   }
   echo("</ul>\n<hr />\n");
  }
  if (($num = sizeof($pics)) > 0) {
   if (array_key_exists('offset', $_REQUEST)) $offset = $_REQUEST['offset'];
   else $offset = 0;
   if ($num > $maxpics) {
    echo("<p id=\"pagenumbers\">\n");
    for ($i = 0; $i < $num; $i += $maxpics) {
     $e = $i + $maxpics - 1;
     if ($e > $num - 1) $e = $num - 1;
     if ($i != $e) $b = ($i + 1) . '-' . ($e + 1);
     else $b = $i + 1;
     if ($i == $offset) echo("<b>$b</b>");
     else {
      $url = ($dirname  == '') ? '?' : '?dir=' . urlencode($dirname) . '&amp;';
      echo("<a href=\"{$url}offset=$i" . html($urlsuffix) . "\">$b</a>");
     }
     if ($e != $num - 1) echo(' |');
     echo("\n");
    }
    echo("</p>\n<hr />\n");
   }
   echo("<p id=\"pictures\">\n");
   for ($i = $offset; $i < $offset + $maxpics; $i++) {
    if ($i >= $num) break;
    $filename = $pics[$i];
    $file = $realdir . $delim . $filename;
    if (!is_readable($file)) continue;
    if (!is_dir($realdir . $delim . $thumbdir)) {
     $u = umask(0);
     if (!@mkdir($realdir . $delim . $thumbdir, 0777)) {
      echo('<p style="color: red; text-align: center">' . word('mkdir_error') . '</span>');
      break;
     }
     umask($u);
    }
    $thumb = $realdir . $delim . $thumbdir . $delim . $filename . '.thumb.jpg';
    if (!is_file($thumb)) {
     if (eregi($jpg, $file))
     $original = @imagecreatefromjpeg($file);
     elseif (eregi($gif, $file))
     $original = @imagecreatefromgif($file);
     elseif (eregi($png, $file))
     $original = @imagecreatefrompng($file);
     else continue;
     if ($original) {
      if (function_exists('getimagesize'))
      list($width, $height, $type, $attr) = getimagesize($file);
      else continue;
      if ($width >= $height && $width > $thumbsize) {
       $smallwidth = $thumbsize;
       $smallheight = floor($height / ($width / $smallwidth));
       $ofx = 0; $ofy = floor(($thumbsize - $smallheight) / 2);
      } elseif ($width <= $height && $height > $thumbsize) {
       $smallheight = $thumbsize;
       $smallwidth = floor($width / ($height / $smallheight));
       $ofx = floor(($thumbsize - $smallwidth) / 2); $ofy = 0;
      } else {
       $smallheight = $height;
       $smallwidth = $width;
       $ofx = floor(($thumbsize - $smallwidth) / 2);
       $ofy = floor(($thumbsize - $smallheight) / 2);
      }
     }
     if (function_exists('imagecreatetruecolor'))
$small = imagecreatetruecolor($thumbsize, $thumbsize);
     else $small = imagecreate($thumbsize, $thumbsize);
     sscanf($bg, "%2x%2x%2x", $red, $green, $blue);
     $b = imagecolorallocate($small, $red, $green, $blue);
     imagefill($small, 0, 0, $b);
     if ($original) {
      if (function_exists('imagecopyresampled'))
imagecopyresampled($small, $original, $ofx, $ofy, 0, 0, $smallwidth, $smallheight, $width, $height);
      else
imagecopyresized($small, $original, $ofx, $ofy, 0, 0, $smallwidth, $smallheight, $width, $height);
     } else {
      $black = imagecolorallocate($small, 0, 0, 0);
      $fw = imagefontwidth($fontsize);
      $fh = imagefontheight($fontsize);
      $htw = ($fw * strlen($filename)) / 2;
      $hts = $thumbsize / 2;
      imagestring($small, $fontsize, $hts - $htw, $hts - ($fh / 2), $filename, $black);
imagerectangle($small, $hts - $htw - $fw - 1, $hts - $fh, $hts + $htw + $fw - 1, $hts + $fh, $black);
     }
     imagejpeg($small, $thumb);
    }
    if ($filenames) echo('<div>');
    if ($included && $inline) {
    echo('<a href="?');
    if (array_key_exists('dir', $_REQUEST)) echo('dir=' . urlencode($_REQUEST['dir']) . '&amp;');
    echo('pic=' . $i . html($urlsuffix));
    } else echo('<a href="' . html("$dirnamehttp/$filename"));
    echo('"><img src="' . html("$dirnamehttp/$thumbdir/$filename.thumb.jpg"));
    echo('" alt="' . html($filename) . '" style="');
    echo("width: {$thumbsize}px; height: {$thumbsize}px\" />");
    if ($filenames) echo('<p>' . html($filename) . '</p>');
    echo('</a>');
    if ($filenames) echo("</div>\n"); else echo("\n");
   }
   echo("</p>\n");
  }
}
}
if (!$included) echo("</body>\n</html>");
?>

Фортуна улыбается тем, кого не замечает Фемида

4
 



С нами с 21.04.01
Сообщения: 666
Рейтинг: 436

Ссылка на сообщениеДобавлено: 03/02/06 в 04:50       Ответить с цитатойцитата 

спасибо огромное.
буду разбираться,судя по коду он хтмлки сам создает.

0
 



С нами с 21.04.01
Сообщения: 666
Рейтинг: 436

Ссылка на сообщениеДобавлено: 03/02/06 в 07:17       Ответить с цитатойцитата 

нихера не пашет icon_sad.gif
ругается на 'JPEG software is required. See ftp://ftp.uu.net/graphics/jpeg/.'
хз почему,но открыть этот урл я смог в лисе, а скачать чтолибо оттуда немогу.
на php.net кроме мануала нет ничего,даже нет линка откуда скачать.

0
 



С нами с 26.09.03
Сообщения: 856
Рейтинг: 783

Ссылка на сообщениеДобавлено: 03/02/06 в 07:21       Ответить с цитатойцитата 

он те все правильно подсказывает, для работы ему надо поставить
JPEG software(ftp://ftp.uu.net/graphics/jpeg/), только что проверил - все нормально скачивается

те админов надо толкать

з.ы. полные его требования:
- PHP >= 4.1.0
- GD Library ( >= 2.0.1)
- JPEG software
- PHP >= 4.3.0 or GD < 1.6 for GIF support
- libpng for PNG support

Последний раз редактировалось: Twister (03/02/06 в 07:30), всего редактировалось 2 раз(а)

Фортуна улыбается тем, кого не замечает Фемида

4
 
+ + +


С нами с 30.12.05
Сообщения: 3477
Рейтинг: 1658

Ссылка на сообщениеДобавлено: 03/02/06 в 15:55       Ответить с цитатойцитата 

Все пашет.
Twister спасибо!

0
 



С нами с 21.04.01
Сообщения: 666
Рейтинг: 436

Ссылка на сообщениеДобавлено: 03/02/06 в 16:13       Ответить с цитатойцитата 

у меня вроди и так все стоит:
gd-2.0.33_4,1
jpeg-6b_3
php-4.4.1
png-1.2.5_3

0
 



С нами с 26.09.03
Сообщения: 856
Рейтинг: 783

Ссылка на сообщениеДобавлено: 03/02/06 в 17:16       Ответить с цитатойцитата 

проверь что в GD есть поддержка jpg (phpinfo)
gd->JPG Support - enabled
и апач собран с jpg либами (Configure Command): '--with-jpeg-dir'

Фортуна улыбается тем, кого не замечает Фемида

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »