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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2011, 20:37   #1
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию Сравнение переменных

PHP код:
$name date('d_m_y');
$file_list glob("./img/*.png");
$file=max($file_list); 
В папке img лежат файлы с именами от 01_02_11.png до 10_02_11.png

Как сделать чтобы значение $file , было обязательно меньше переменной $name? И ни в коем случаи не больше и не равно.
Иными словами нужно выбрать из списка файлов фаил с наибольшим числовым значением, которое обязательно должно быть меньше $name.

Последний раз редактировалось snikers987; 10.02.2011 в 20:43.
snikers987 вне форума Ответить с цитированием
Старый 10.02.2011, 20:51   #2
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

разбей строку на массив и сравнивай цыклами.
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 10.02.2011, 20:56   #3
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
Радость

Цитата:
Сообщение от spein Посмотреть сообщение
разбей строку на массив и сравнивай цыклами.
Можно поподробнее?
snikers987 вне форума Ответить с цитированием
Старый 10.02.2011, 21:32   #4
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

Код:
$filear = explode("_", $file);
if($filear['2'] > intval(date('y'))) {

}
и т.д. Если надо чтоб я написал - напиши в асю. Но бесплатно ничего не делаю
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 10.02.2011, 21:59   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от snikers987 Посмотреть сообщение
Можно поподробнее?
А может лучше вы дадите более подробное описание всей задачи вцелом, с какой целью всё это делается..?

Спрашиваю не из любопытства, а потому что:
1. Практически любую задачу можно решить несколькими способами - желательно найти оптимальный,а не "лиш бы работало".
2. Решать задачи типа "Найти N последних загруженных файлов" или "Найти вчерашние файлы(дата в именах)" методом перебора ВСЕХ файлов в директории - это глупость (ИМХО).
Для этого есть более практичные и удобные способы.(БД, запись в файл)

to spein:
1.Кавычки в индексе массива не нужны:
Цитата:
$filear['2']
2.Все значения с индексом 2 везде будут одинаковы(11) по условию ТС:
Цитата:
В папке img лежат файлы с именами от 01_02_11.png до 10_02_11.png
Andkorol вне форума Ответить с цитированием
Старый 10.02.2011, 22:08   #6
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию

Цитата:
<?php
$site_url = @$_SERVER["HTTP_HOST"];
$name = date('d_m_y');
$file = "http://$site_url/img/$name.png";
if (@fopen($file, "r")) {
$shapka = "<img src='/img/$name.png'>";
} else {
$file_list = glob("./img/*.png");
$day = max($file_list);

$shapka = "<img src='$day'>";
}
echo "Сегодня $name <br/> $shapka";

?>
Пытаюсь сделать что-то на подобии скрипта смены картинок каждый день. Если на текущий день есть картинка с именем date(d_m_y).png (к примеру на сегодня 10_02_11.png), то она выводится, а если нету то выводится последняя добавленная, но нюанс в том что если добавить фаил на будущую дату и нет файла на текущую, то отображается не предыдущий а будущий фаил. Эту задачу я и пытаюсь решить! Буду признателен за помощь!

Последний раз редактировалось snikers987; 10.02.2011 в 22:16.
snikers987 вне форума Ответить с цитированием
Старый 10.02.2011, 22:28   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от snikers987 Посмотреть сообщение
Пытаюсь сделать что-то на подобии скрипта смены картинок каждый день.
Есть ли объективные причины,по которым вы не хотите(не можете) использовать БД для этого?
Если они есть - используйте запись в файл сериализованного массива формата 'upload_date' => 'file_name'(upload_date лучше храните в timestamp).
В этом массиве записывайте/храните информацию об N последних загруженных файлах('дата_загрузки' => 'имя_файла').
При необходимости - сортируйте этот массив по ключам для получения нужного значения.

Для определения существования файла лучше(и правильнее) использовать file_exists()
Andkorol вне форума Ответить с цитированием
Старый 10.02.2011, 22:32   #8
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию

Использование MySQL возможно, просто я не сильно дружу с ним.
snikers987 вне форума Ответить с цитированием
Старый 10.02.2011, 22:54   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от snikers987 Посмотреть сообщение
Использование MySQL возможно, просто я не сильно дружу с ним.
Тогда сериализация массива с информацией об N последних файлах + запись в файл.
Из этого массива потом и выбирайте нужный файл.
Тут фишка в чём - файлов со временем становится всё больше,и лопатить их в поисках "последнего, предпоследнего, за 20-е число" становится всё труднее(возрастают затраты времени и ресурсов).
А с таким массивом в файле - вы всегда будете иметь дело с 5-10(например) элементами массива(вообще не касаясь самих файлов для поиска или проверки существования).

PS: MySQL подтяните - без него чаще всего никак.
Хотя бы базовые знания.
Andkorol вне форума Ответить с цитированием
Старый 10.02.2011, 22:55   #10
snikers987
Пользователь
 
Регистрация: 04.12.2010
Сообщений: 63
По умолчанию

file_exists()
не хочет почему-то работать, всегда выдает что файла нет, хотя адрес прописан правильно..хз

И хотелось бы уточнить, что мне не нужно проверять 1000 файлов, в папке всегда будет ну максимум 5-10 файлов. Хочу это скрипт для замены шапки использовать. Был вариант если нет на текущую дату , то отобразить default.png , но так не очень хочется. Хочу крутить шапку под новинки фильмов. Не хочется втягивать мускул и запись в фаил,но как я понял без этого никак?

Последний раз редактировалось snikers987; 10.02.2011 в 23:00.
snikers987 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Адреса переменных rommster Visual C++ 1 26.11.2010 08:35
Сравнение объектных переменных NomadV Microsoft Office Word 1 09.04.2010 16:44
Много переменных Altera Общие вопросы Delphi 15 18.07.2008 08:06
Проверка переменных *_ViruS_* Общие вопросы C/C++ 3 21.09.2007 21:33