форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Создание сайта / ramilCMS 3.0 BETA
Автор Сообщение
Рамиль
minibb moder

1152
# Дата: 5 Июн 2006 13:56


Вот, пытаюсь заниматься сурьёзными весчами: http://internet.alfamoon.com. В 3-ей версии я хочу заменить всю ту бестолковую систему на модульную. Уже готово три модуля. Два из них бестолковых, просто вывод html и данных из файла. А вот третий, думаю, боле-менее: модуль вывода статей. На главной выводится список статей, начало статьи ~260 символов, автор, дата добавления, кем добавлен и источник... Нужно зделать ещё простенький файловый архив и форму отправки писем(что наверное, просто). Потом останется только делать админку и гостевуху.
З.Ы. Тема ничего не рекламирует, просто это начало темы, в которую я буду постить все вопросы по созданию движка

acsid
Alfa Guru

2469
# Дата: 5 Июн 2006 14:04


Рамиль
бестолковая тема покачто)

smallcms
Участник

2752
# Дата: 5 Июн 2006 17:11


» acsid
бестолковая тема покачто)

и эта ?

Рамиль
minibb moder

1152
# Дата: 6 Июн 2006 09:14


Первый вопрос есть: как же править файлы? Думаю, что просто изменить его нельзя, нужно получать целиком, менять что-то на нужное, потом заново писать в файл... ТАК ли это?

Рамиль
minibb moder

1152
# Дата: 6 Июн 2006 09:50 ° Поправил: Рамиль


acsid
Можешь повторить про блокировку файла во время записи?
З.Ы. Если же файл будет блокирован во время обращения к нему скрипта, скрипт просто будет "ждать" пока файл не освободится?

Константин
TorrentMaster

3529
# Дата: 6 Июн 2006 11:03


Рамиль
необязательно будет ждать - может просто обломаться. поэтому надо вообще говоря перед открытием файла проверять его на заблокированность - flocked() кажется, но точно не помню.

Рамиль
minibb moder

1152
# Дата: 6 Июн 2006 11:14 ° Поправил: Рамиль


Константин
» Константин
поэтому надо вообще говоря перед открытием файла проверять его на заблокированность - flocked() кажется, но точно не помню.

Задача усложняется... Хотя гостевуху пока делать не буду . Не против если твой дефсмтпсендер для отправки почты использовать буду?

acsid
Alfa Guru

2469
# Дата: 6 Июн 2006 13:25


» Рамиль
Можешь повторить про блокировку файла во время записи?
З.Ы. Если же файл будет блокирован во время обращения к нему скрипта, скрипт просто будет "ждать" пока файл не освободится?

ну всё ведь прямо написано .. скрипт блокировал фаил (на время своей работы ) и если другой пользователь запустит этотже скрипт в этоже время ..то он будет ждать пока скрипт первого поьзователя освободится.
» Рамиль
Первый вопрос есть: как же править файлы? Думаю, что просто изменить его нельзя, нужно получать целиком, менять что-то на нужное, потом заново писать в файл... ТАК ли это?


file.txt
 
gaga<!>vasja<!>as3242dasd<!>sdfsfdfds<!> 
ok<!>petja<!>asdas234d<!>sad65asd<!> 
gaga<!>masha<!>asdasd<!>asda78879sd<!> 




 
$file_arr=file("file.txt"); заганяем фаил в массив 
$file=fopen("file.txt","w"); открываем фаил для перезаписи 
flock($file,LOCK_EX); блокируем фаил для остальных 
$count_file=count($file_arr); щитаем массив 
$i=0; задаём начальную строку 
for($i;$i<$count_file;$i++){ открывам каждую строку фаила 
    $data=explode('<!>',file_arr[$i]); эксплоидаем её 
    if($data[1]=="ok"){ теперь определяем та ли эта строка (которую нам нужно из 
менить..)для этого один элемент массива строки сравниваем с нужным значением $file_arr[$i]="new line<!>$data[1]<!>$data[2]<!>$data[3]<!>"; если это в
ерная строка задаём ей новое значение ..вносим изменения в строку короче } fwrite($file,$file_arr[$i]);записываем все строки обратно в фаил } flock($file,LOCK_UN);разблокируем фаил fclose($file); закрываем фаил



в итоге фаил станет таким:

file.txt
 
gaga<!>vasja<!>as3242dasd<!>sdfsfdfds<!> 
new line<!>petja<!>asdas234d<!>sad65asd<!> 
gaga<!>masha<!>asdasd<!>asda78879sd<!> 


acsid
Alfa Guru

2469
# Дата: 7 Июн 2006 02:54 ° Поправил: acsid


Рамиль

http://internet.alfamoon.com./index.php?module=no_module&page=filefile
советую делать проверку того что в ссылке через регулярки(smallcms уже давал гдето эти регулярки), потом проверять есть ли такие фаилы в директории
 
$file=$_GET['page']; 
$module=$_GET['module']; 
//тралала тут проверочку регулярками 
$link="modules/$module.php"; 
$dat="articles/$file.dat"; 

if(is_file($dat) && is_file($link)){ 
     
    инклуд.. 
} 




а потом уже инклюдить если эти условия выполняюцца)

Плюс совет:
modules/nomodule.php

в большенстве цмс делают так:
ссылка такая: index.php?module=news&file=index

папка modules/папка_с_названием_модуля/фаил.php

это делается для того чтобы модули не путались..допустим если у тебя модуль состоит больше чем из одного фаила.

Рамиль
minibb moder

1152
# Дата: 7 Июн 2006 12:54


acsid
ОК, большое спасибо. Теперь мне надо зделать проверку на наличие текста в файле. Пробовал в цикле сравнивать каждую строку из файла с той, которую надо записать и просто проверять наличие строки в файле функцией eregi_(блин, дальше не помню... )

Рамиль
minibb moder

1152
# Дата: 14 Июн 2006 22:09 ° Поправил: Рамиль


Обновился малость... Добавил проверку на существование модуля, файловый архив, и отправку почты с сайта. Думаю проблема с
» Рамиль
Теперь мне надо зделать проверку на наличие текста в файле
тоже решилась, проверять можно функцией in_array(), получая в массив файл

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:31954, gzipped size:9765

Mp3 Download || Мир Спанч боба || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]