IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Сортировка данных при записи в файл (http://www.imho.ws/showthread.php?t=7716)

Olim 12.07.2002 14:06

Сортировка данных при записи в файл
 
Написал скрипт добавления новостей, саму запись произвожу так:

<?php

---- some code ----

@$open_news = fopen ($site_news, "a+");
rewind ($open_news);
@fputs ($open_news, $news_ins);
@fclose ($open_news);

?>

Проблема в том, что новая запись добавляется в файл после предыдущей, а мне
нужно, чтобы новая запись записывалясь в начало файла (, а остальные, как бы смещались
на одно вниз). Пробовал использовать в качестве параметра fopen - "r+", но в этом
случае каждая новая запись просто переписывала предыдущую.
Как сделать, чтоб при записи в файл новая запись добавлялась в начало файла,
или, если это невозможно, то как сделать чтобы при выводе этого файла (я использую
include_once ('somefile.htm')) он отображался в браузере, как бы "вверх ногами"? :idontnow:

Stasik 12.07.2002 15:14

PHP код:

<?
//прочитаем новые новости
$open_news fopen ($site_news"w"); 
while (!
feof ($open_news)) {
$news_old .= fgets($open_news1024);
}
fclose ($open_news); 

//очистили файл
$open_news fopen ($site_news"w+"); 
//сложим старое и новое
$news $news_ins.$news_old;
//запишем
fputs ($open_news$news); 
fclose ($open_news);
?>

вуаля

tr1pl 13.07.2002 15:22

ну и изврат:) не проще прочитать файл в массив фцией file() , перевернуть его array_reverse() и выводить сколько надо записей из готового массива.
А запись производить просто и незадачливо:

PHP код:


    $fp 
fopen('./chat/messages.txt',"a");
    
flock($fp,2);
    
$string =  "My new news";
    
fputs($fp,$string);
    
fclose($fp); 



Часовой пояс GMT +4, время: 12:07.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.