Я создал сценарий для создания эскизов с использованием библиотеки GD для PHP. Дело в том, что исходные изображения находятся в соответствующих каталогах, которые назначены 'gallery/'.$section;
и пальцы будут идти в каталоге 'gallery/thumbs/'.$section
Невозможно использовать переменную внешнюю функцию даже после ее установки global
Теперь, каждый раз, когда выполняется скрипт я хочу, чтобы проверить, если эскиз уже существует, и если не только потом создавать его, но всякий раз, когда я вызываю функцию и перезагружаю страницу, она каждый раз создает новый эскиз.
Я знаю, что речь идет о сфере видимости переменной внутри и снаружи функции, но что я не могу понять. Я попытался установить переменную как глобальную, но все же она не работает.
Это предварительная декларация. idir
предназначен для каталога изображений, а tdir
предназначен для каталога больших пальцев.
<?php
$idir = "gallery/".$section.'/';
$tdir="gallery/thumbs/".$section.'/';
if(!file_exists($tdir)){
mkdir($tdir);
}
Это функция, которую я использую.
function createThumbs($idir, $tdir, $tw, $th){
$dir=opendir($idir);
while(($fname = readdir($dir)) != false){
if($fname!='.' && $fname != '..'){
$img = imagecreatefromjpeg($idir.$fname);
$width = imagesx($img);
$height = imagesy($img);
if($width>$height){
$new_width=$tw;
$new_height=$height*($tw/$width);
}
if ($width < $height)
{
$new_width=$width*($th/$height);
$new_height=$th;
}
if ($width == $height)
{
$new_width=$tw;
$new_height=$th;
}
$tmp_img = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($tmp_img, $img, 0,0,0,0, $new_width, $new_height, $width, $height);
imagejpeg($tmp_img, $tdir.$fname, 100);
imagedestroy($tmp_img);
imagedestroy($img);
}
}
closedir($dir);
}
И после этого я вызываю функцию подобным образом.
if (!file_exists($tdir.$fname)) {
createThumbs($idir,$tdir,250, 200);
}
Также при вызове функции он дает ошибку - undefined variable .$fname
.
, что означает '$ fname' не был определен ... и на основе отображаемого кода он не был. – cmorrissey
$ fname = readdir ($ dir) –
Хорошо, у вас есть '$ fname' в функции, но что такое' $ fname' в разделе 'file_exists'? –