Как упростить скрипт вывода?

himera

Новичок
Как упростить скрипт вывода?

Вот скрипт новостей который считывает в массив данные из файла и выводит их:
PHP:
<?php
$news_array = file_get_contents("news/news.txt");
$lines = array();
$lines = explode("[n]", $news_array);

echo $lines[0] ;
echo $lines[1] ;
?
Все хорошо, но если у меня в файле не одна не две, а к примеру 100 новостей!
Это же с ума сойти можно набирать все это:
echo $lines[0] ;
echo $lines[1] ;
.......................
echo $lines[98] ;
echo $lines[99] ;

можно ли это как то упростить?
Насколько я понял нужно создать цикл типа
PHP:
foreach ($line as $stroka_vivoda)
Но вот с синтаксом что то не разберусь :(
Может кто нибудь подскажет?
 

itprog

Cruftsman
PHP:
<?php
$news_array = file_get_contents("news/news.txt");
$lines = array();
$lines = explode("[n]", $news_array);
foreach($lines as $line)
{
echo $line;
}
?>
Теперь о foreach:
Возможно два варианта foreach:
foreach($array as $value)
foreach($array as $key => $value)

Первый вариант циклически проходит по массиву, заданному в $array. При каждом проходе значение текущего элемента присваивается переменной $value, а внутренний указатель массива передвигается на единицу (поэтому при следующем проходе присваивается значение следующего элемента). Второй вариант выполняет то же самое, но ключ текущего элемента присваивается переменной $key.

Примеры:
PHP:
<?php
// Массив
$a = array("a"=>1,"b",2,3);

// Первый вариант:
foreach($a as $value)
{
echo $value.";";
} 
// Результат: 1;b;2;3


// Второй вариант:
foreach($a as $key=>$value)
{
echo $key."=".$value.";";
} 
// Результат: a=1;0=b;1=2;2=3;
?>
 

himera

Новичок
Хм.. имеем скрирт для редактирования новостей:
PHP:
<?php
echo '<center><h3>редактирование новостей</h3></center><br>';
 #####
$news_array = file_get_contents("../news/news.txt");
$lines = array();
$lines = explode("[n]", $news_array);
foreach($lines as $line)
{
print "<form method=\"POST\" action=\"edit_news.php\">
  <p>
  <textarea rows=\"7\" name=\"edit_news\" cols=\"35\">\n";
echo $line;
print "</textarea></p>
  <p><input type=\"submit\" value=\"Сохранить\" name=\"B1\"></p>
</form>\n";
}


#########################
?>
А вот как теперь собрать все отредактированное обратно в news.txt наведите на мысль пожалуйста.
 

confguru

ExAdmin
Команда форума
himera

Используй БД :) Там ,eltn ibht возможностей :)
Или смотри функции работы с файлами ...
[m]fwrite[/m]
 

Фанат

oncle terrible
Команда форума
himera
А если у тебя будет сто новостей? браузер не упадёт?
редактировать надо по одной.

и что это там у тебя ещё за [n]?
 

himera

Новичок
Честно сказать я к ней прирагиваться пока боюсь даже :)

А если у тебя будет сто новостей? браузер не упадёт?
Мож и упадет, эт я так для примера из головы число взял :)
и что это там у тебя ещё за [n]?
[n] Я исползую как разделитель между новостями вместо всяких | или / и тд...

Как просто записать текст в файл с этим я разобрался а вот как переписать в нем отдельную новость от разделителя до разделителя не соображу.
Пример
10.03.2004<br>Все идет по плану<hr>[n]10.03.2004<b>Работать работать и еще раз работать <hr>[n]

Как вывести в форму 2 новость для редактирования я понял а как ее туда же записать на место старой?
 

Ilya

Новичок
муторно с файлами такие операции производить...
послушайся admin, используй БД :)

ну а если по файлам:
2 новость вывел, запомнил что она вторая, в скрипте сохранение чтешь все в массив, как выше, и меняешь второй элемент, потом все обратно сохраняешь.

гемор...
подумай о БД, ничего сложного в них для таких задач нет, и работа будет куда проще чем с файлами.
 
Сверху