Роман К.
6970 повідомлень
#15 років тому
Прошу совета у программистов-сайтостроителей.

Есть страничка, куда простеньким скриптом при обращении заливается текст из файла, имя которого передаётся параметром адресной строки. Кое-какое форматирование должно присутствовать в файле: теги заголовков, ссылки, картинки и пр. Варианты:
1. Писать все теги явно.
2. Использовать метатеги, которые при выводе будут заменяться на стандартные (а это даст какое-то преимущество?).
3. Подставлять нужные теги скриптом при выводе (скажем, первая строка - это всегда заголовок, вторая - подзаголовок; url и картинки можно выявить и т.д.)
4. Написать "подготовщик", который будет расставлять теги, и обрабатывать им файлы перед выкладыванием на сервер.

Какой вариант оптимальнее с точки зрения скорости выполнения и возможных изменений дизайна/структуры сайта (и прочих критериев, которые я не знаю)?

Сайт небольшой, посещаемость - тоже. Но я не знаю, какую нагрузку на сервер создаст п.3 и сколько посетителей его в этом случае перегрузит.
Роман Беляев
16382 повідомлення
#15 років тому
Эмм.. я вот почти ничего не понял, но подозреваю, что подразумевается использование некоторого шаблона. для обработки шаблонов используют шаблонизаторы например smarty.

хорошо бы вопрос задать понятнее.
Роман К.
6970 повідомлень
#15 років тому
Цитата ("frig"):
хорошо бы вопрос задать понятнее.

Попробую. Просто я чайник в этой теме.

Что именно непонятно: описание ситуации или варианты решения?
Роман Беляев
16382 повідомлення
#15 років тому
Цитата ("voron_76"):
Что именно непонятно: описание ситуации или варианты решения?

Хорошо бы просто поставить конкретно задачу. ЧТО именно требуется и какие инструменты доступны для ее решения. (есть ли ограничения)
Роман К.
6970 повідомлень
#15 років тому
Цитата ("frig"):
Цитата ("voron_76"):
Что именно непонятно: описание ситуации или варианты решения?

Хорошо бы просто поставить конкретно задачу. ЧТО именно требуется и какие инструменты доступны для ее решения. (есть ли ограничения)

Задача.
Есть шаблон, в который вставляется статья из файла. Шаблон динамический, т.е. вставка происходит в момент обращения к странице. Каждая статья лежит в отдельном текстовом файле. В настоящее время файл выглядит таким вот образом.
Цитата:
<h1>Не послать ли нам...</h1>
<h2>Обзор файлообменных сервисов</h2>
<p align=right><date>Опубликовано 02.02.2010</date></p>
С увеличением скорости доступа и снижением стоимости безлимитных тарифов пересылка больших файлов становиться все доступнее. Теоретически. Когда же доходит до практики, выясняется, что файл объёмом 150 Мбайт через электронную почту "не пролазит". И пользователь впадает в панику, не зная, что делать. Все сравнительно просто, если есть собственный сайт, на котором достаточно места: файл выкладывается через FTP, а письмом отсылается ссылка на него. Но собственные сайты (да еще с достаточным объемом места) есть пока далеко не у всех. Прямая пересылка через ICQ-клиент тоже не всегда возможна: она нестабильна, да и не все клиенты "дружат" между собой.Между тем, уже давно существует множество удобных файловых хостингов, позволяющих разместить в Сети объемные файлы. Рассмотрим самые популярные.
<h3><a href="http://rapidwhare.com">Rapidshare.com</a></h3>
Немецкий англоязычный сервис. На аскетично оформленной главной странице сразу бросается в глаза строчка с кнопкой "Обзор" и короткая инструкция из двух пунктов на английском языке по загрузке файлов. Для тех, кому даже такая инструкция непонятна, чуть ниже выложен ролик, где наглядно показано, на какие кнопки нужно нажимать, чтобы загрузить или скачать файл. Правда, ролик тоже на английском языке и слишком низкого разрешения, чтобы можно было разобрать надписи, так что не факт, что он даст больше информации.
<img src="web/rapidshare.png">


И сейчас я не могу решить, как лучше реализовать вставку вот этого форматирования:
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),
2) или скриптом, помещающим текст из файла в шаблон (т.е. в самом файле никаких тегов нет и они вставляются в процессе заливки текста в шаблон).

Собственно, вопрос о решении не стоит - решить эту задачу можно и так, и этак. Я не могу определиться, какой метод решения выбрать, поскольку из-за отсутствия опыта плохо представляю подводные камни обоих методов.
Роман Беляев
16382 повідомлення
#15 років тому
Цитата ("voron_76"):
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),


именно так. есть текст, вместе с текстом должно быть его форматирование. типовое форматирование общих для сайта блоков (заголовки, абзацы) должно быть в подключаемом css.

вообще я бы не заморачивался с хранением в файлах. не модно это сейчас.
Владимир М.
327 повідомлень
#15 років тому
Цитата ("voron_76"):
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),
Проще вставлять на страницу, сложней готовить файл, сложней сменить шаблон в будущем.

Цитата ("voron_76"):
2) или скриптом, помещающим текст из файла в шаблон (т.е. в самом файле никаких тегов нет и они вставляются в процессе заливки текста в шаблон).
Немного сложней вставлять на страницу, нет ограничений на смену шаблонов в будущем.

Второй вариант предпочтительней.
Роман К.
6970 повідомлень
#15 років тому
Цитата ("frig"):
Цитата ("voron_76"):
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),

именно так. есть текст, вместе с текстом должно быть его форматирование.

А чем плох вариант подставлять эти теги в процессе заливки?
Скажем, скрипт берёт первую строку и подставляет к ней теги <h1>. Вторую строку - <h2>. Третью строку - <date>. Имя файла картинки - <img src> и так далее. Ну, то есть, я понимаю, что это нагрузка на сервер - но насколько она критична?

Цитата:
вообще я бы не заморачивался с хранением в файлах. не модно это сейчас.

У меня тариф без SQL, а менять - жаба душит. Да и просто интересно. Это пока так... развлекушечки-обучалочки.
Роман Беляев
16382 повідомлення
#15 років тому
Цитата ("voron_76"):
А чем плох вариант подставлять эти теги в процессе заливки?


Можно это дело эмулировать. Хранить лучше в файлах с сериализированными массивами (читать мануал по функцияе serialize и unserialize)
Будет практически тоже самое, что и с БД. Если чуток точнее - формируем массив с предполагаемыми ячейками. Например заголовок, текст новости, иконка, тело новости, потом делаем serialize и пишем полученную строку в файл. В следующий раз прочитав из файла все что есть и прогнав через unserialize получим исходный массив. С которым уже дальше можно работать точно также как со строкой из БД.
Артем Л.
11416 повідомлень
#15 років тому
Цитата ("voron_76"):
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),

Я думаю используйте первый, зачем лишний раз напрягать программистов и сервер
Роман К.
6970 повідомлень
#15 років тому
Цитата ("intelleks"):
Цитата ("voron_76"):
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),
Проще вставлять на страницу, сложней готовить файл, сложней сменить шаблон в будущем.

Вот поэтому он мне и не нравится.

Цитата:
Цитата ("voron_76"):
2) или скриптом, помещающим текст из файла в шаблон (т.е. в самом файле никаких тегов нет и они вставляются в процессе заливки текста в шаблон).
Немного сложней вставлять на страницу, нет ограничений на смену шаблонов в будущем.
Второй вариант предпочтительней.

А нагрузка на сервер? А анализатор, выделяющий куски текста, к которым нужно подставить теги (ладно заголовки - а ссылки-картинки?) - его можно сделать достаточно универсальным, чтобы он не косячил?
Роман К.
6970 повідомлень
#15 років тому
Цитата ("frig"):
Цитата ("voron_76"):
А чем плох вариант подставлять эти теги в процессе заливки?

Можно это дело эмулировать. Хранить лучше в файлах с сериализированными массивами (читать мануал по функцияе serialize и unserialize)
Будет практически тоже самое, что и с БД. Если чуток точнее - формируем массив с предполагаемыми ячейками. Например заголовок, текст новости, иконка, тело новости, потом делаем serialize и пишем полученную строку в файл. В следующий раз прочитав из файла все что есть и прогнав через unserialize получим исходный массив. С которым уже дальше можно работать точно также как со строкой из БД.

Ок, почитаю... Спасибо.
Роман К.
6970 повідомлень
#15 років тому
Цитата ("Hungry_Hunter"):
Цитата ("voron_76"):
1) при предварительной подготовке файла - с использованием HTML-тегов (как сейчас),

Я думаю используйте первый, зачем лишний раз напрягать программистов и сервер

Так тут вопрос: один раз напрячь программиста - или постоянно напрягать подготовителя файлов.
Роман К.
6970 повідомлень
#15 років тому
Наверное, я думаю, имеет смысл просто написать скрипт, расставляющий в тексте нужные теги, и выкладывать уже подготовленные файлы. В конце концов, переобработать все файлы при редизайне не так уж сложно, да и когда он ещё будет, этот редизайн...
Роман Беляев
16382 повідомлення
#15 років тому
При хранении в сериализованных (или сериализированных?) массивах можно даже интерфейсик для правок предусмотреть. А потом безболезненно мигрировать на БД.
Владимир М.
327 повідомлень
#15 років тому
ЕслиЦитата ("voron_76"):
Сайт небольшой, посещаемость - тоже.
то нагрузка не существенная.

Вероятно, лучшее решение по середине
вариант 1+1/2: блоки информации в файле хранятся по заданному шаблону (пр.: строка1 - заголовок, #2 - описание, #3 - автор, далее - текст статьи), но каждый блок содержит необходимые html теги вроде ссылок, изображений и т.д.
Роман К.
6970 повідомлень
#15 років тому
Цитата ("frig"):
При хранении в сериализованных (или сериализированных?) массивах можно даже интерфейсик для правок предусмотреть. А потом безболезненно мигрировать на БД.

Мне сейчас такое не сделать.
Роман К.
6970 повідомлень
#15 років тому
Цитата ("intelleks"):
ЕслиЦитата ("voron_76"):
Сайт небольшой, посещаемость - тоже.
то нагрузка не существенная.
Вероятно, лучшее решение по середине
вариант 1+1/2: блоки информации в файле хранятся по заданному шаблону (пр.: строка1 - заголовок, #2 - описание, #3 - автор, далее - текст статьи), но каждый блок содержит необходимые html теги вроде ссылок, изображений и т.д.

Думал уже... Смысла особого нет: три тега в первых трёх строках погоды не сделают, основная работа будет с заголовками-ссылками-картинками внутри статьи.

Наверное, всё-таки остановлюсь на варианте написания обработчика и выкладывания подготовленных им файлов с тегами.
Роман Беляев
16382 повідомлення
#15 років тому
Цитата ("voron_76"):
Мне сейчас такое не сделать.


Нет в этом ничего сложного. Ориентироваться надо в любом случае на общепринятые сейчас подходы. Так проще и понятнее для всех. Если нет БД - сериализированный массив - отличное решение. Хранение смысловых блоков отдельно это правильно. Но если это сделано также правильно. Просто по строкам - не вариант. Строк может быть несколько, их надо отделять одну от другой.
Sum М.
48 повідомлень
#15 років тому
Данные лучше хранить на БД, а для удобства шаблонизации пишите на Классах, для этого почитайте об ООП. хравнить данные в тексте не очень безопасно для сервера.

а по сути на чем пишите если не секрет?