Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2011, 19:06   #1
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию Поиск пути в директории

Господа, доброго времени суток! на мой взгляд - все корректно, а на Ваш?

открываю для чтения директорию в которой лежат картинки
PHP код:
$imgS opendir('./imgS'); 
обхожу все позиции директории в цикле и записываю в массив
PHP код:
$dir[$i] = readdir($imgS
затем обхожу все позиции массива $dir[] и пытаюсь получить путь к файлу
PHP код:
foreach ($dir as $img_name)
{
    
$path $imgS '/' $img_name;
    echo 
'<img src="$path" />';

Вопрос: почему не читаются картинки, некорректно соединен путь в переменной $path?

PS var_dump() говорит это:
Код:
string(25) "Resource id #3/f.jpg"
string(22) "Resource id #3/r.jpg"
string(25) "Resource id #3/t.jpg"
string(15) "Resource id #3/"
KLAXON вне форума Ответить с цитированием
Старый 14.02.2011, 20:51   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от KLAXON Посмотреть сообщение
на мой взгляд - все корректно, а на Ваш?
Выкладывайте полностью код - а не отдельные его фрагменты.
Для ясности - используйте комментарии в коде,если это необходимо.

По сабжу - на первый взгляд, неправильный обход массива $dir.

Когда вы присваиваете значения - вы используете ключ:
Цитата:
$dir[$i] = readdir($imgS);
Возможно, нужно сделать так:
Цитата:
foreach ($dir as $key => $img_name)
Использование foreach
Использование readdir

Хотя - может и не в этом причина - трудно сказать без кода целиком...

PS: насчёт обхода массивов я скорее всего неправ - сделайте просто var_dump($dir) для ясности...

Последний раз редактировалось Andkorol; 14.02.2011 в 21:18. Причина: Up-p-p-s-s с массивами))
Andkorol вне форума Ответить с цитированием
Старый 14.02.2011, 22:41   #3
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

вот полный код функции. при организации файла, содержащего скрипт, в папку с файлом следует положить под-папку imgS

PHP код:
function search_images()
{
    
$imgS opendir('./imgS');
    
$dir = array ();

    while (
false !== ($dir[$i] = readdir($imgS)))
        {
            if (
$dir[$i] == '.' || $dir[$i] == '..' || $dir[$i] == 'Thumbs.db'// удаляем лишние значения массива
            
{
                unset (
$dir[$i]);
            }
            
$i++;
        }
    
var_dump($dir); // смотрим конечное состояние массива
    
    
if (count($dir) > 0)
    { 
        echo 
'<table align="center" border="1">';
    
        foreach (
$dir as $img_name)
        {
            
$path $imgS '/' $img_name;
            
$temp var_dump($path) . '<br>'; echo $temp;  //смотрим путь на конечном этапе
            
echo '<tr>';
            echo 
'<td width="250">' '<img src="$path" />' '</td>';
            echo 
'</tr>';    
        }
        echo 
'</table>';
    }
    
    
closedir($imgS);

помимо нужной информации, $dir содержит лишние строки, как от них избавиться? иначе условие
PHP код:
if (count($dir) > 0
теряет свой смысл.
KLAXON вне форума Ответить с цитированием
Старый 14.02.2011, 22:58   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

У вас путь к файлам неверно задаётся:
Цитата:
$path = $imgS . '/' . $img_name;
А $imgS - это у нас дескриптор открытия каталога,а не путь к нему.

Об этом нам и пишет var_dump():
Цитата:
string(25) "Resource id #3/f.jpg"
PS: а ещё вывод изображения задан неверно:
Цитата:
echo '<td width="250">' . '<img src="$path" />' . '</td>'; - в одиночных кавычках не подставляется значение переменной
должно быть так:
echo '<td width="250">' . '<img src="' . $path . '" />' . '</td>';

Последний раз редактировалось Andkorol; 14.02.2011 в 23:04.
Andkorol вне форума Ответить с цитированием
Старый 14.02.2011, 23:23   #5
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

ок, благодарю, на счет дискриптора уяснил.

а как быть с лишними значениями, в двух словах, откуда они вылезают, направьте, пожалуйста.
KLAXON вне форума Ответить с цитированием
Старый 14.02.2011, 23:26   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от KLAXON Посмотреть сообщение
а как быть с лишними значениями, в двух словах, откуда они вылезают, направьте, пожалуйста.
C какими лишними значениями..?
Andkorol вне форума Ответить с цитированием
Старый 14.02.2011, 23:31   #7
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

первый var_dump() идет в строку, второй в столбец, кроме того, лишние значения добавляют пустое поле в таблице

KLAXON вне форума Ответить с цитированием
Старый 14.02.2011, 23:36   #8
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Я давал вам ссылку на описание работы с readdir - там есть пример.

Вот так нужно:
PHP код:
while (false !== ($file readdir($imgS)))
        {
            if (
$file != '.' && $file != '..' && $file != 'Thumbs.db'// отбираем только имена файлов
            
{
                
$dir[] = $file;
            }
        } 
Andkorol вне форума Ответить с цитированием
Старый 15.02.2011, 01:03   #9
KLAXON
Пользователь
 
Регистрация: 17.06.2010
Сообщений: 50
По умолчанию

грасеас, попробую в случаях, когда возникают подобные казусы строить условия от обратного.
KLAXON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск папки по имени в директории artemavd Общие вопросы Delphi 4 06.08.2010 08:18
Получение пути к пользовательской директории JamesBlack Общие вопросы C/C++ 3 04.06.2010 21:34
Некорректное определение короткого пути к директории voam Microsoft Office Excel 7 12.12.2009 12:38
Достать директории из полного пути к файлу Kuzya59 Общие вопросы Delphi 7 23.09.2009 13:08
Поиск директории Volkogriz Общие вопросы Delphi 1 05.02.2009 01:29