[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: нужно выводить и старые новости и новые из тхт
человекЕ
здравствуйте.
вот суть дела-
записывается новость один за другим в один тхт, на странице новостей есть только один анонс(от последней новости),вместе с ссылкой,прохожу по ссылке и попадаю на страницу где есть эта последняя новость,а также все предыдуще записанные новости. пока только могу показать одну новость,а если на тхт файле имеются также и другие новости,то из-за $i++ ['text'] показывается последняя строка,а не все.
error_reporting(0);
$a=file('2.txt');
$news=array();
$snews=array();
$i=0;

foreach ($a as $b)
{
if (strlen(trim($b))>0) {
if ($i==0) $snews['theme']=trim($b);
if ($i==1) $snews['date']=trim($b);
if ($i==2) $snews['announce']=trim($b);
else $snews['text']=trim($b);

$i++;
} }
$news[]=$snews;
echo "<h2>".$snews['theme']."</h2><br/>";
echo $snews['date']."<br/>";
echo $snews['announce']."<br/>";

echo $snews['text']."<br/>";




Спустя 5 минут, 4 секунды (26.01.2012 - 19:14) человекЕ написал(а):
может быть пойдет file_get_contents , но тогда как можно сделать так,чтобы вырывать из последней новости определенные строки?

Спустя 11 минут, 53 секунды (26.01.2012 - 19:25) h234 написал(а):
У тебя берутся первые три строчки и самая последняя.
Надо i после присвоения 'text' занулять.
$news[]=$snews; //перенести в цикл
когда выводишь сообщения, проходится уже по массиву $news

Спустя 42 минуты, 19 секунд (26.01.2012 - 20:08) человекЕ написал(а):
спасибо. мне кажется я тебя неправильно понял
$i=0;

foreach ($a as $b)
{
if (strlen(trim($b))>0) {
if ($i==0) $snews['theme']=trim($b);
if ($i==1) $snews['date']=trim($b);
if ($i==2) $snews['announce']=trim($b);
else $snews['text']=trim($b);


}
$i=0;
$news[]=$snews;
$i++;
}

echo "<h2>".$news['theme']."</h2><br/>";
echo $news['date']."<br/>";
вот что я сделал, и сделал неправильно

Спустя 2 минуты, 39 секунд (26.01.2012 - 20:10) inpost написал(а):
А почему не сделать на нормальном MySQL? Когда он служит для этих целей?

Спустя 2 минуты, 34 секунды (26.01.2012 - 20:13) человекЕ написал(а):
да задание такое дали,mysql скоро будет

Спустя 2 минуты, 9 секунд (26.01.2012 - 20:15) человекЕ написал(а):
пробовал еще так добавлять

$snews=array('announce'=>'', 'text'=>'' и тд);


Спустя 3 минуты, 56 секунд (26.01.2012 - 20:19) h234 написал(а):
как то так
$i=0;

foreach ($a as $b){
if (strlen(trim($b))>0) {
if ($i==0) $snews['theme']=trim($b);
else if ($i==1) $snews['date']=trim($b);
else if ($i==2) $snews['announce']=trim($b);
else{
$snews['text']=trim($b);
$news[]=$snews;
$i=0;
}
}

$i++;
}

foreach($news as $value){
echo "<h2>".$value['theme']."</h2><br/>";
echo $value['date']."<br/>";
echo $value['text']."<br/>";
}

Спустя 16 минут, 16 секунд (26.01.2012 - 20:35) человекЕ написал(а):
спасибо.
немного не получается вот что выводит
осень


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

осень


1.1.1
лето
автор сень
у кого какие догадки?

Спустя 8 минут, 37 секунд (26.01.2012 - 20:44) человекЕ написал(а):
а должно быть так\
осень
1.02.3002
автор бондюэль
ку-ка-реку.сидели мы на трубе и упала,кто остался.не идите дедти в африку гулять.там ведь в африке крокодилы,львы и змеи,пауки и чародеи.ывфывфывфывыфвыфвфывйцу.попиропитокиноки сокижокирогиноги. Предложенная функция возвращает все загруженные новости из файла в виде массива, каждый элемент которого сам является ассоциативным массивом, содержащим полный набор полей отдельно взятой новости. Теперь, на странице, где должны быть выведены все новости, мы можем просто вставить следующий код:



лето
1.1.1
автор сень
жил был осен и была зима и были они времена года

Спустя 3 минуты, 39 секунд (26.01.2012 - 20:48) Winston написал(а):
Ну так убери br
foreach($news as $value){
echo "<h3>".$value['theme']."</h3>";
echo $value['date']."<br/>";
echo $value['text']."<br/>";
}
echo '<br/>';

Спустя 20 минут, 34 секунды (26.01.2012 - 21:08) человекЕ написал(а):
неправильно понял. смотри,он выдает
осень



осень
1.1.1
лето
автор сень

, а должен давать это

лето
1.1.1
автор сень
жил был осен и была зима и были они времена года

Спустя 50 минут, 35 секунд (26.01.2012 - 21:59) walerus написал(а):
человекЕ - Если честно вообще НЕ понял что нужно и в чем проблема. Напиши нормально что нужно вывести.

И прикрепи наконец файл с текстом, чтоб не гадать что куда, файл можно прикрепить через последовательность: Предварительный просмотр -> прикрепить файл внизу будет.

Забыл, в файле с новостями, новости добавляются в конец файла или в начало ?

Спустя 8 часов, 54 минуты, 52 секунды (27.01.2012 - 06:54) человекЕ написал(а):
скрипт путает малость. в файле написано что должно быть,а дает не то,то есть 1 новость выходит правильно,а вторая с заголовком первой и не полностью

Спустя 1 минута, 6 секунд (27.01.2012 - 06:55) человекЕ написал(а):
а вот скрипт

Спустя 59 секунд (27.01.2012 - 06:56) человекЕ написал(а):
в начало,но я думаю это можно будет сделать с array_reverse если не ошибаюсь

Спустя 1 час, 16 минут, 29 секунд (27.01.2012 - 08:12) h234 написал(а):
Потому что i=0 бывает только первый раз
Сделай так

foreach ($a as $b){
if (strlen(trim($b))>0) {
if ($i==0) $snews['theme']=trim($b);
else if ($i==1) $snews['date']=trim($b);
else if ($i==2) $snews['announce']=trim($b);
else{
$snews['text']=trim($b);
$news[]=$snews;
$i=0;
continue;
}
}

$i++;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.