Jak dopisać dane na początku pliku tekstowego, PHP Skrypty


[PHP] Jak dopisać dane na początku pliku tekstowego?

0x01 graphic

Zwykle wszystkie dane dopisuje się na końcu pliku, ale nagle musisz dopisać coś na samym początku. Konieczność dopisania informacji na początku może wystąpić w tekstowych bazach danych, plikach z informacjami, zapiskami, raportami, statystykami. Można to zadanie wykonać na wiele sposobów.

0x01 graphic

Odczytaj cały plik i umieść go w tablicy. Teraz dopisz to, co miało się znaleźć na początku pliku, a następnie dodaj zapamiętaną wcześniej resztę pliku z tablicy. Oto gotowy kod programu:

<?

//odczyt pliku do tablicy

$dane = file("plik.txt");

$ile = count($dane);

//zapisanie nowej linijki i starej zawartości

$up = fopen("plik.txt", "w");

flock($up,2);

fwrite($up, "pierwsza linijka\n");

for($i=0; $i<$ile;$i++) fwrite($up, $dane[$i]);

flock($up,3);

fclose($up);

?>

Na początku trzeba pobrać całą zawartość pliku do tablicy za pomocą file(). Następnie musisz otworzyć plik do zapisu, ale tak by nadpisać zawartość, czyli w trybie "w" (write). Teraz jako pierwsze dopisujemy nasze wyrażenie - pierwsza linijka\n (\n to przejście do nowej linii), a za nim całą zawartość wcześniej odczytanego pliku, która znajduje się w tablicy $up.

Po małych zmianach w kodzie można dopisać nowe wyrażenie w dowolne miejsce w pliku, wystarczy odpowiednio zmodyfikować zawartość tablicy. Nadpisywanie pliku zawsze jest niebezpieczne, więc gdy robi to kilka osób jednocześnie warto zablokować na chwilę dostęp do pliku poprzez funkcję flock(). Wartość 2 blokuje dostęp innym, wartość 3 odblokowuje dostęp. W tym czasie tylko my możemy zmieniać zawartość pliku i nikt go nam nie zmieni (w większości wypadków, ponieważ nie zawsze funkcja flock() działa poprawnie - zależy to od systemu operacyjnego).

Jeżeli zawsze chcesz dopisywać informacje na początku pliku, to pamiętaj, że możesz dopisywać dane na koniec pliku, a plik odwrócić, aby to co jest na końcu znalazło się na początku. Jak? Oto kod:

$dane = file("plik.txt");

$dane = array_reverse ($dane);

Teraz Twój plik (w tablicy) jest obrócony. Możesz więc zapisywać zawsze na końcu i wyświetlać od końca. Łatwo i wygodnie.



Wyszukiwarka

Podobne podstrony:
Jak zamienić liczby na kwoty zapisane słownie, PHP Skrypty
Jak odbierać dane pochodzące z różnych pól formularza, PHP Skrypty
Jak automatycznie pokolorować na przemian wiersze tabeli, PHP Skrypty
Jak stworzyć na stronie kalendarzyk z dniami miesiąca na dowolny rok i miesiąc, PHP Skrypty
Jak zatrzymać wykonywanie skryptu na określoną liczbę sekund, PHP Skrypty
Jak odzyskac dane na iphone
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
jak miedzy stronami przesłać zmienne korzystajac z sesji, PHP Skrypty
Jak zrobić licznik pobrań plików ze strony, PHP Skrypty
jak wypisac zawartosc bazy danych dBase (dbf), PHP Skrypty
Jak wygenerować statyczny plik .html z bazy danych, PHP Skrypty
jak samodzielnie obliczyc numer dnia w dowolnym roku, PHP Skrypty
Jak wysłać list do grup dyskusyjnych USENET, PHP Skrypty
jak stworzyc licznik klikniec ze statystyka dzienną, PHP Skrypty
jak wykonac strone z logowaniem do innej strony, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
PDF Jak przenieść dane z pliku ISO na płytę CD, pc 10s075ok
jak przeslac dane z pol tekstowych do innych stron, PHP Skrypty
Jak wypisać w tabeli zawartość pliku tekstowego z polami oddzielonymi separatorem, PHP Skrypty

więcej podobnych podstron