Созадние скрипта который ежедневно выводил бы праздник!
Суть в чём: есть скрипт написанный на php выводящий текущюю дату + если находи в своей базе что с этой датой сопоставлен какой-то праздник то выводит и его! Проблема заключается в том что я хочу создать файл в котором каждый день будет праздником, файл готов на 30%. Как вы понимаете размер файлика растёт а с ним растёт и время загрузки страницы. У меня вопрос - можно ли забать всё это дело чтобы работало через mysql. Скрипт полезный и при удачном исходе могу пустить его в свободное плавание! Пример можете посмотреть на моей страничке www.x102.spb.ru Еси возникнут вопросы оставляйте здесь сообщения и я выложу коды скриптов!
Re: Созадние скрипта который ежедневно выводил бы праздник!
цитата:
Onyx пишет
Суть в чём: есть скрипт написанный на php выводящий текущюю дату + если находи в своей базе что с этой датой сопоставлен какой-то праздник то выводит и его! Проблема заключается в том что я хочу создать файл в котором каждый день будет праздником, файл готов на 30%.
извращенец. хранить такую инфу надо в базе.
гЕмору меньше на порядки.
цитата:
Как вы понимаете размер файлика растёт а с ним растёт и время загрузки страницы.
было бы странно если бы было Иначе...
цитата:
У меня вопрос - можно ли забать всё это дело чтобы работало через mysql.
(правильно заданный вопрос содержЫт как минимум половину ответа) (интересно, какой ответ ты хотел услышать?)
Да. Можно.
цитата:
Скрипт полезный и при удачном исходе могу пустить его в свободное плавание!
не в обиду будет сказано - сам по себе скриптик пишется
на коленке на php/perl+mysql/postgresql/othershit скажем не очень долго
тут бОльшая проблема - ввести в базу все праздники и набор рулесетов для оных.
__________________ Те, кто не любит котов - собаки.
25.02.2004 12:25
Юрик
Его Величество Администратор
Группа: Администраторы
Дата регистрации: 21.06.2004
Сообщения: 3340
Кто?: Выпускник
это верно
за бутылку могу накалякать на РНР и MySQL
По теме:
структура таблицы может быть такой:
дата празника
название
описание
...
цитата:
MATPOCKuH пишет: ввести в базу все праздники
есть такой способ (опробован мной на перле):
допустим, уже имеется инфа в текстогвом файле примерно в таком формате
поле1-1,поле2-1,поле3-1...
поле1-2,поле2-2,поле3-2...
....
MySQL позволяет делать импорт информации в базу из файлов подобного формата..
весьма удобено в том случае, если текстовые файлы уже есть , а заполнять базу в ручную лень
__________________ Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.
25.02.2004 13:27
MATPOCKuH
Барон Килобайт I-степени
Группа: Пользователи
Дата регистрации: 13.01.2004
Сообщения: 399
Кто?: Препод
fastkill пишет
структура таблицы может быть такой:
дата празника
название
описание
...
имхо - упрощаешь. есть всякие [beep]ые праздники с
непостоянной датой типа последнее воскресенье или
первая питница
так что просто датой ты не отмажешься
цитата:
цитата:
MATPOCKuH пишет: ввести в базу все праздники
есть такой способ (опробован мной на перле):
допустим, уже имеется инфа в текстогвом файле примерно в таком формате
поле1-1,поле2-1,поле3-1...
поле1-2,поле2-2,поле3-2...
....
MySQL позволяет делать импорт информации в базу из файлов подобного формата..
весьма удобено в том случае, если текстовые файлы уже есть , а заполнять базу в ручную лень
когда такой файл существует - легко.
грузануть в таблицу данные из текстового файла, предварительно прогнав его через sed/awk/perl/php проблемой не является
__________________ Те, кто не любит котов - собаки.
25.02.2004 13:40
Stan F
Его Величество Администратор
Группа: Администраторы
Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР
$CheckHollydays = array (
'0112'=>'Сегодня Международный день борьбы со СПИДом!',
'0212'=>'Сегодня День Рождения Лёшки Кичигина, а также Международный день борьбы за отмену рабства! Поздравляем!',
'0312'=>'Сегодня Международный день инвалидов!',
'0412'=>'Сегодня День Рождения Никиты Горы, поздравляем!',
'0512'=>'Сегодня Международный день добровольцев во имя ...!',
'0712'=>'Сегодня Международный день гражданской авиации!',
'1012'=>'Сегодня Всемирный день футбола, День прав человека, а также День Нобеля!',
'1112'=>'Сегодня Всемирный день детского телевещания!',
);
Грубая работа это так делать, особливо заморачиваться с датой в нестандартном формате. Действительно лучше заколотить в файл, если не через БД, а потом включить его через require( критическая ошибка, если не удалось читать) или include( подавляемое предупреждение, не портящее работу остальной части страницы). Задача ведь довольно примитивная имхо. Onyx, купи Фасткиллу пиво и не парься
__________________
Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик
27.02.2004 01:07
Onyx
Сэр Байт II-степени
Группа: Пользователи
Дата регистрации: 24.11.2003
Сообщения: 57
Кто?: Студент, группа 2102
ты можешь ето сделать? а насчёт бутылки, как говорили выше , не сомневайся. Плюс ещё тот, что когда я создам базу праздников то могу её вам отдать и ей будут пользоваться все..
короче говоря, надо встретиться и поговорить... выбирай пивооо
ты можешь ето сделать? а насчёт бутылки, как говорили выше , не сомневайся. Плюс ещё тот, что когда я создам базу праздников то могу её вам отдать и ей будут пользоваться все..
короче говоря, надо встретиться и поговорить... выбирай пивооо
так до сих пор не ясно, каким именно способом нужно сделать..
..кроме того, опиши задачу подробнее: где именно нужно выводить, как .. есть ли особые условия..
и еще:
цитата:
MATPOCKuH пишет
имхо - упрощаешь. есть всякие [beep]ые праздники с
непостоянной датой типа последнее воскресенье или
первая питница
так что просто датой ты не отмажешься
подобные праздники частенько бывают.. хотя на них можно забить..
а скрипт мне проще накалякать и бросить прямо сдесь..
__________________ Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.
27.02.2004 12:01
MATPOCKuH
Барон Килобайт I-степени
Группа: Пользователи
Дата регистрации: 13.01.2004
Сообщения: 399
Кто?: Препод
fastkill пишет
так до сих пор не ясно, каким именно способом нужно сделать..
..кроме того, опиши задачу подробнее: где именно нужно выводить, как .. есть ли особые условия..
да. даёшь ТЗ
цитата:
и еще:
цитата:
MATPOCKuH пишет
имхо - упрощаешь. есть всякие [beep]ые праздники с
непостоянной датой типа последнее воскресенье или
первая питница
так что просто датой ты не отмажешься
подобные праздники частенько бывают.. хотя на них можно забить..
ну это смотря для каких целей использовать его ....
если определить за что сегодня пьём - то можно и забить
а если более менее серьёзно подходить к вопросу -
уже наверное плохо...
цитата:
а скрипт мне проще накалякать и бросить прямо сдесь..
надеюсь при текущих условиях он будет не длиннее 10-ти строчек?
__________________ Те, кто не любит котов - собаки.
27.02.2004 12:15
Onyx
Сэр Байт II-степени
Группа: Пользователи
Дата регистрации: 24.11.2003
Сообщения: 57
Кто?: Студент, группа 2102
www.x102.spb.ru - на первой странице есть пример как этот скрипт выводится...задача проста: сделать наиболее быстродейственным для использования на такого рода страницах..
2fastkill... лучше здесь не выкладывай..кинь мне лучше на почту
Onyx,
как ни странно, наиболее быстродейственный вариант - это тот, который ты здесь предложил, т.е. клепать хэш-массив..
.. а варианты скриптов с базой данных и текстовым файлом будут требовать больше времени на выполнение..
.. хотя, по-моему, в данном случае зависалово сайта тебе не грозит..
тогда вопрос: поддерживает ли хостинг SSI? (серверные включения)
цитата:
лучше здесь не выкладывай
если будем идти по намеченному плану, более десяти строчек врятли получится.. так что можно и сюда скинуть..
__________________ Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.
27.02.2004 23:41
Stan F
Его Величество Администратор
Группа: Администраторы
Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР
Фасткилл
Хэш-массив не есть лучшее решение проблемы. Придется при модернизации и исправлении ошибок заменять скрипт, да и как-то это криво вообще, плюс еще неудобство и непереносимость (может у кого-то другие праздники?). А разница в скорости будет выражаться в каких-то миллисекундах... Я бы либо написал форму добавления праздника (ов) в БД, либо и правда через shell или mysql_query(), если такового не имеется, сделал бы вот что (скатано прямо из доков по MySQL и что удивительно работает)
[CODE]
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY '\t']
[[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\\' ]
]
[LINES TERMINATED BY '\n']
[IGNORE number LINES]
[(col_name,...)]
[/CODE]
__________________
Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик
28.02.2004 05:32
Onyx
Сэр Байт II-степени
Группа: Пользователи
Дата регистрации: 24.11.2003
Сообщения: 57
Кто?: Студент, группа 2102
есть два РНР-файла:
первый файл mass.php с хэш-массивом:
[php]
<?php
$mass = array (
'0112'=>'Сегодня Международный день борьбы со СПИДом!',
'0212'=>'Сегодня День Рождения Лёшки Кичигина, а также Международный день борьбы за отмену рабства! Поздравляем!',
'0312'=>'Сегодня Международный день инвалидов!',
'0412'=>'Сегодня День Рождения Никиты Горы, поздравляем!',
'0512'=>'Сегодня Международный день добровольцев во имя ...!',
'0712'=>'Сегодня Международный день гражданской авиации!',
'1012'=>'Сегодня Всемирный день футбола, День прав человека, а также День Нобеля!',
'2702'=>'Сегодня Всемирный день детского телевещания!',
);
?>
[/php]
второй файл holydays.php с маленькой прожкой, которая все и выводит:
[php]
<?php
include "mass.php";
$result = "Сегодня праздников нет";
$time = time();
$index = date("dm", $time);
if (@$mass[$index]) $result = $mass[$index];
echo $result;
?>
[/php]
чтобы вставить это дело в HTML-документ, воспользуемся SSI:
[code]
<!--#include virtual="holydays.php"-->
[/code]
это надо вставить в то место, где нужно вывести инфу о празднике..
__________________ Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.
28.02.2004 20:15
Stan F
Его Величество Администратор
Группа: Администраторы
Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР
А не проще обозвать главную страницу index.php? PHP не перл, с хтмл мешается без проблем. Соответственно загнать код в <?php ... ?> и там все определять и вставлять. Заодно еще и документ не будет кэшироваться как статический (особо это должно волновать юзеров асла) и всегда будет показан адекватно.
__________________
Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик
29.02.2004 18:17
Юрик
Его Величество Администратор
Группа: Администраторы
Дата регистрации: 21.06.2004
Сообщения: 3340
Кто?: Выпускник
естественно, но в данном случае пойдет и такой способ..
цитата:
А не проще обозвать главную страницу index.php
На сколько я понимаю, сайт в своей основе практически полностью статический (что и является его главным недостатком), поэтому многие ссылки завязаны на index.html.. кроме того, при использовании SSI соблюдается концепция отделения шаблона от кода..
__________________ Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.
29.02.2004 20:17
Onyx
Сэр Байт II-степени
Группа: Пользователи
Дата регистрации: 24.11.2003
Сообщения: 57
Кто?: Студент, группа 2102