Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie zmian w pliku/tablicy
Forum PHP.pl > Forum > PHP
chfast
Krótki wstęp:
Zapisuje konfigurację skryptu w pliku xml. Odczytuję go przez SAX. Najważniejszy w takim konfigu jest odczyt, bo jest robiony przy każdym gościu na stronie. Zmiany w pliku następują bardzo rzadku i tylko z poziomu admina.

Główny problem:
Pomyślałem sobie, żeby zapisywać dane z pliku xml (po ich odczytaniu) w plik php w postaci tablicy. Przy następnej wizycie dane konfiguracyjne byłyby odczytywane z plik php a nie xml.
Jak sprawdzić czy plik xml się zmienił? Od tego sprawdzenia zależy czy wczytać dane z pliku xml czy z pliku php.

Pytanie dodatkowe:
Jak sprawdzić czy tablica zmieniła się od początku trwania skryptu?
Narazie wymyśliłem coś takiego: na początku zapisuję w zmiennej serializację tablicy, koduję zmienną md5 (żeby zajmowała mniej miejsca). Na końcu robię to samo z tablicą i porównuje.[php:1:57172c1fac]<?php
$array = array();
$c = md5(serialize($array));

//instrukcje które mogą zmienić zawartość tablicy

if($c != md5(serialize($array)) echo 'jest zmiana!';
?>[/php:1:57172c1fac]
Moje wątpliwości:
1. Czy jest możliwie, że dwa stringi będą miały taki sam kod md5?
2. Czy w ogole warto kodować zserializowaną tablice przez md5. Łańcuch zakodowany jest o wiele krótszy, ale byćmoże funckja md5() pochłania wiecej czasu niż wszystkie operacje na niezakodowanym łańcuchu razem wzięte.
uboottd
Porownaj date modyfikacji pliku z data zapisana w tabeli - do tegi nie trzeba czytac pliku, i jelsi data pliku jest wieksza od tej w tabeli to trzeba wczytac plik konfiguracyjny.


ad1. Tak, moga byc dwa stringi majace ta sama md5-ke, lecz jest to bardzo malo prawdopodobne.

ad2. nie oplaca sie liczyc md5ki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.