PHP

Генератор новостей

Снова PHP. Думаю, ты представляешь себе, о чем идет речь в заголовке?
Генератор новостей - удобный и полезный в хозяйстве скрипт, позволяющий публиковать на cвою пагу новости без всяких FTP клиентов - добавление news item`ов будет происходить через форму, примерно как в гостевой книге. Предупреждаю - MySQL я в своем примере не использую. А теперь - продолжим.
Итак, сам скрипт. Он будет состоять из трех частей: 1) формы, 2) скрипта, проводящего идентификацию и (если эта идентификация пройдет успешно) записывающего свеженькую новость в текстовый файл, и 3) скрипта, считывающего инфу из текстового файла и форматирующего ее в соответствии с дизайном твоего сайта. Начнем разбор полетов...


-Скрипт формы (add.php)-

Очень простой скрипт, собственно от PHP тут всего и будет, что расчет сегодняшней даты.


<HTML> 
<HEAD> 
<TITLE>Мегакрутой редактор новостей - этап авторизации</TITLE> 
</HEAD> 
<BODY> 
<br><br><br> 

<h2>Авторизация</h2> 

<br><br> 

<form action=addnew.php method=post> 

Логин: <input 
type=password name=login><br> 

Пароль: <input type=password 
name=pass><br> 

<? 

$date=date("d.m.y"); //устанавливаем формат даты в виде 00.00.00 

echo("Дата: <input type=text name=date value=$date>"); //вставляем ее в объект INPUT формы 

?> 

<br><br><br> 

новость:<br><br><textarea name=news rows=10 cols=60>новость тут!</textarea><br><br> 


<input type=submit value=" ok "> 

</form> 

</BODY> 
</HTML>




-конец скрипта-


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


-скрипт 2 (addnew.php)-


<h2>Редактор новостей</h2> 

<br><br> 

<? 

if( ($login=="vasya") && 
($pass=="qwerty") ) { //если введенные пароль и логин соответсвуют нашему значению, то 

echo("новость добавлена! <a 
href=index.php>смотреть</a>"); //выводим 
сообщение что все ОК 

$newsfile=fopen("text/news.txt",a); //открываем 
файл для добавления инфы (режим a) 

$dan="$date$news"; //устанавливаем формат инфы как "дататекст новости" 

fwrite($newsfile,"$dann"); //записываем данные в открытый файл и переходим на новую строку 

} 

else 

echo("Неправильный логин или пароль!"); //если логин неправильный - выводим обламывающую мессагу 

?>




-конец скрипта-



И наконец, имхо, самая сложная часть генератора - форматирование. Тут пришлось поизвращаться :) Смотри сам:


<? 

$fp=file("text/news.txt"); //очень удобный оператор file() - открывает файл и записывает всю инфу из него в массив $fp 

$kolnews=count($fp); // количество новостей = числу элементов в массиве $fp 

for($i=$kolnews; $i>=0; $i--) { 

/* 
основной геморрой - обратный цикл :) Его мы используем, так как оператор fwrite() в скрипте #2 добавляет свежие новости в конец файла, а нам нужно, чтобы более поздние записи выводились первыми. 
*/ 

list($date,$text)=split("",$fp[$i]); 

/* 
берем по одному элементу из массива $fp[$i] (строке из файла) и list`уем ее: то значение, что будет до трех двоеточий, присваиваем переменной $date, то, что после - переменной $text. 
*/ 

if(strlen($date) > 0) 

/* 
так как в скрипте 2 мы используем перенос на новую строку (n), то последняя строка будет пустой. Проверяем длину строки $date, если 
она больше нуля - форматируем новость, как нам хочется, и печатаем ее: 
*/ 

echo("<i>$date</i> $text<br><br>"); 

else 

echo("Что новенького на сайте:<br><br>"); 
// иначе - пишем заголовок "Что новенького". 

} 

?>



Вот и все! ;) Сюда можно добавить кучу всяких вкусных фишек, вроде подключения архива новостей, функций, автоматически добавляющих <a target=_blank href=...>, если во вводимом тексте присутствует корректный URL, и т.д. Это только основная идея :) Если что - пишите мне или в комменты.
Теги:
Генератор новостей
Добавлено: 16 Апреля 2018 07:36:15 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...