[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Неразберих с функцией
brainraider
Доброго времени суток всем читающим этот пост...

Бьюсь уже 2й день, ничего не лезет в голову...

В общем, есть вот такой кусок кода:


$images=array();// инициализируем массив
img_for_objects("apanel/photos/".$row[3]);//вызываем функцию;
echo '//выводим имаги...
<div class="left2"><div class="shadow"><div class="corner_lb"><div class="corner_rt">
<img class="img_border" src="apanel/photos/'
.$row[3].'/'.$images[1].'" width="250" height="200" alt="'.$row[1].'">
</div></div></div></div>
'
;


функция выглядит так:

<?php
function
img_for_objects($url)
{
$dir=opendir($url);
$images=array();
while ($file=readdir($dir))
if($file!="." && $file!="..")
{
$rasshir = substr($file, strrpos($file, '.') + 1);
if($rasshir=="jpg" || $rasshir=="JPG")
$images[]=$file;
}
closedir($dir);
}
?>

Но это все не пашет... просто напросто выводит вот что:
Notice: Undefined offset: 1 in ...

Что самое интересное, вот так все прекрасно пашет:

$url= "apanel/photos/".$row[3]."/";
$dir=opendir($url);
$images=array();
while ($file=readdir($dir))
if($file!="." && $file!="..")
{
$rasshir = substr($file, strrpos($file, '.') + 1);
if($rasshir=="jpg" || $rasshir=="JPG")
$images[]=$file;
}
echo'
<div class="shadow left2"><div class="corner_lb"><div class="corner_rt">
<img class="img_border" src="apanel/photos/'
.$row[3].'/'.$images[1].'" width="250" height="200" alt="'.$row[1].'">
</div></div></div>
'
;

Подскажите плиз, почему у мну не работает... почему я не могу получить элемент массива...




Спустя 1 час, 33 минуты, 43 секунды (14.11.2009 - 01:04) kirik написал(а):
brainraider
читал?

Спустя 17 минут, 1 секунда (14.11.2009 - 01:21) John_761 написал(а):
Я думаю проблема в том, что массив $images[] локален для твоей функции, возвращай массив

Спустя 11 минут, 47 секунд (14.11.2009 - 01:32) krasilich написал(а):
John_761 Все сказал, вот код

function img_for_objects($url)
{
$dir=opendir($url);
$images=array();
while ($file=readdir($dir))
if($file!="." && $file!="..")
{
$rasshir = substr($file, strrpos($file, '.') + 1);
if($rasshir=="jpg" || $rasshir=="JPG")
$images[]=$file;
}
closedir($dir);
return $images;
}

$images=img_for_objects("apanel/photos/".$row[3]);//вызываем функцию;
echo '//выводим имаги...
<div class="left2"><div class="shadow"><div class="corner_lb"><div class="corner_rt">
<img class="img_border" src="apanel/photos/'
.$row[3].'/'.$images[1].'" width="250" height="200" alt="'.$row[1].'">
</div></div></div></div>
'
;

Спустя 9 минут, 20 секунд (14.11.2009 - 01:42) brainraider написал(а):
Огромное спасибо! Хотел вот только попросить объяснить глупому новичку логику работы ЭТОГО =))) впервые вижу такой подход...

Заранее благодарен!

Спустя 1 час, 42 минуты, 48 секунд (14.11.2009 - 03:25) kirik написал(а):
see_man
А ты читал? smile.gif

Цитата (http://ca.php.net/manual/en/function.readdir.php)
/* This is the WRONG way to loop over the directory. */
while ($file = readdir($handle)) {
    echo "$file\n";
}

Спустя 8 минут, 57 секунд (14.11.2009 - 03:33) brainraider написал(а):
kirik, see_man пасибки огромное:


<?php
function
img_for_objects($url)
{
$dir=opendir($url);
$images=array();
while (false!==($file=readdir($dir)))
if($file!="." && $file!="..")
{
$rasshir = substr($file, strrpos($file, '.') + 1);
if($rasshir=="jpg" || $rasshir=="JPG")
$images[]=$file;
}
closedir($dir);
return $images;
}
?>

Тока объясните как работает ретерн =)))) А то я написать написал, а понять не понял=)))

Спустя 7 часов, 36 минут, 14 секунд (14.11.2009 - 11:10) ИНСИ написал(а):

function img_for_objects($url)
{
$images = array(); // создаем массив, в котором будут все фотки
........

return $images; // возвращаем весь результат, который мы получили
}

$images = img_for_objects("apanel/photos/".$row[3]); // функция return $images присваивает содержимое которое в ней в $images


Спустя 2 часа, 11 минут, 14 секунд (14.11.2009 - 13:21) brainraider написал(а):
Спасибо =)

Спустя 52 минуты, 6 секунд (14.11.2009 - 14:13) krasilich написал(а):
Цитата (kirik @ 14.11.2009 - 00:25)
see_man
А ты читал? smile.gif

Цитата (http://ca.php.net/manual/en/function.readdir.php)
/* This is the WRONG way to loop over the directory. */
while ($file = readdir($handle)) {
    echo "$file\n";
}

kirik, таки заставил прочитать smile.gif


_____________
Там где есть новички, есть и двигатель прогресса!!!
Ну, если не сказать больше=)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.