Я нашел полезный PHP-код, который отображает фотографии в каталоге папок в качестве предварительного просмотра изображения. Проблема заключается в том, что мой хост-провайдер блокирует одну из команд сценария «Shell_exec()», поэтому PHP-код не работает.Ошибка Shell_Exec для списка каталогов?
Любой способ получить код для запуска без использования shell_exec?
<?PHP
// filetypes to display
$imagetypes = array("image/jpeg", "image/gif");
?>
<?PHP
function getImages($dir)
{
global $imagetypes;
// array to hold return value
$retval = array();
// add trailing slash if missing
if(substr($dir, -1) != "/") $dir .= "/";
// full server path to directory
$fulldir = "{$_SERVER['DOCUMENT_ROOT']}/$dir";
$d = @dir($fulldir) or die("getImages: Failed opening directory $dir for reading");
while(false !== ($entry = $d->read())) {
// skip hidden files
if($entry[0] == ".") continue;
// check for image files
$f = escapeshellarg("$fulldir$entry");
$mimetype = trim(`file -bi $f`);
foreach($imagetypes as $valid_type) {
if(preg_match("@^{$valid_type}@", $mimetype)) {
$retval[] = array(
'file' => "/$dir$entry",
'size' => getimagesize("$fulldir$entry")
);
break;
}
}
}
$d->close();
return $retval;
}
?>
<?PHP
// fetch image details
$images = getImages("images");
// display on page
foreach($images as $img) {
echo "<div class=\"photo\">";
echo "<img src=\"{$img['file']}\" {$img['size'][3]} alt=\"\"><br>\n";
// display image file name as link
echo "<a href=\"{$img['file']}\">",basename($img['file']),"</a><br>\n";
// display image dimenstions
echo "({$img['size'][0]} x {$img['size'][1]} pixels)<br>\n";
// display mime_type
echo $img['size']['mime'];
echo "</div>\n";
}
?>
Ваш вопрос действительно сбивает с толку, не могли бы вы рассказать о том, что вы хотите сделать именно? – Criesto
Я не вижу причин использовать shell_exec(). Существуют функции php для сканирования каталога. Просто просмотрите руководство по php.net. –
В изображении предварительного просмотра? – user5180991