Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите написать функцию проверки/ поиска, картинки в папке 
:(
    Опции темы
mixas
Дата 16.1.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 20.6.2007

Репутация: нет
Всего: нет



функции передаётся стринг и флаг указывающий, является ли стринг полным именем файла или только его частью.

я функцию начал, а закончить не могу. наверное там надо preg_replace юзать, я даже не знаю с какой стороны к проблеме подойти.
Код

function getPicName($name,$teil=true)
{
$imgpath = '../../images/';
$ret = '';

if($teil)
{   
 // Пройтись по папке и найти файл с именем $name.'_'*.'.jpg' где вместо "*" после $name и подчёркивания может быть что угодно, а в конце ".jpg"
 $imgname = .........
 $ret =  $imgname;
 // если такого не нашёл, то
 $ret = 'Такой файл не найден.';
}
else
{
 $imgname = $name.'.jpg';
 if(file_exists(''.$imgpath.$imgname))
 {
  $ret =  $imgname;
 }
 else
 {
  $ret = 'Такой файл не найден.';
 }
}
return $ret;
}


спасиба, если кто поможет или подскажет 
PM MAIL   Вверх
theworldcreator
Дата 16.1.2009, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



http://ru.php.net/opendir
http://ru.php.net/manual/ru/function.readdir.php
Далее каждое имя файла в папке проверяем
а) что оно не папка, а именно файл
б) что оно начинается на данную строку(substr()+strlen()) и оканчивается на ".jpg"(тоже самое)
PM MAIL WWW ICQ   Вверх
ksnk
Дата 16.1.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



glob случайно, не оно?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 16.1.2009, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



PM MAIL   Вверх
mixas
Дата 17.1.2009, 05:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 20.6.2007

Репутация: нет
Всего: нет



про glob почитал, но как то не вьехал, примеров мало.
сделал вот так:
Код

function getPicName($name,$teil=true)
{
    $imgpath = '../../images/';
    $ret = '';

    if($teil)
    {
        $namelen = strlen($name);
        if ($handle = opendir($imgpath))
        {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..")
                {
           $res = substr(''.$file, 0, $namelen);
                    if($res == $name)
                    {
                     $ret = ''.$file; 
                     break;
                    }
                }
            }
            closedir($handle);
        }
    }
    else
    {
        $imgname = $name.'.jpg';
        if(file_exists(''.$imgpath.$imgname))
        {
            $ret =  $imgname;
        }

    }
    return $ret;
}


работает, как мне надо. а с глобом было бы проще?
PM MAIL   Вверх
ksnk
Дата 17.1.2009, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



?

Код

print_r(
    glob($imgpath .$name. ($tail?'*':'') )
);

в 5 строке не прояснит ситуацию? 

Правда glob возвращает еще и каталоги, которые подходят под маску, так что проверить каталог это или файл, все-таки нужно.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
theworldcreator
Дата 17.1.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Код

function getPicName($name,$teil=true)
{
    $imgpath = '../../images/';
    $ret = '';
    if($teil)
    {
        $namelen = strlen($name);
        if ($handle = opendir($imgpath))
        {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." AND $file != ".." AND is_file($imgpath.$file) AND substr($file, 0, $namelen) == $name AND substr($file, strlen($file)-4) == '.jpg')
                {
                     $ret = $file; 
                }
            }
            closedir($handle);
        }
        if($ret == '') $ret = 'Такой файл не найден.';
    }
    else
    {
        $imgname = $name.'.jpg';
        if(file_exists($imgpath.$imgname))
        {
            $ret =  $imgname;
        }else  $ret = 'Такой файл не найден.';
    }
    return $ret;
}

P.S. Вариант с glob() намного лучше и правильней, просто дабы не плодить неаккуратный код, мало-ли кто потом скопирует smile
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.