Проследяване на файл

Msecurity

Registered
Здравейте отново
Мъча се да си направя една система за файлове.
И та въпроса ми е следният - има ли вариант да проследявам php файлове.
Например файлът се казва "test.php" и се намира в директория "soft". И например ако по някаква причина му се смени името или директорията, да изписва новата директория и името.
ПП: Някакъв вариант да има код във самяит файл....
Иначе се сетих и за варианта със "file_exists" но ако му се смени името на файла или директорията... ще изписва че не съществува :( И не ми върши работа.
 
Не се сещам точно за какво ти трябва това, но може да се направи примерно по следния начин: правиш списък на директориите и обхождаш всички файлове в тях (списъка може да бъде автоматичен или въведен от теб). Ако файловете са php във всеки слагаш една променлива например

$this_file_key = "Името на файла, уникален ключ или каквото искаш";


Във файла за проверки правиш нещо подобно:

$key_list = array();

foreach ($file_list as $id => $file_name){

$this_file_key = "";

include($file_name);

$key_list [$id] = $this_file_key;

}

Във файла не трябва да имаш команди за изпълнение, а само функции и променливи!

Тук http://geobg.info/web/index.php?id=38 има пример как се прави списък на файловете в дадена директория, само трябва да смениш разширението на файла според твоите нужди.
 
ммм файловете не са при мен в повечето случаи :(
А са на друхи хостинги и т.н.
И за това ми трябват кодове за прослдяване.
А това със изпълняващият код , мисля че ще ми е проблем :(
 
Тогава може да използваш file_get_contents, но вече как ще разпознаваш даден файл зависи от конкретния случай. Ако ти създаваш/променяш файловете може да включиш някаква ключова дума, иначе трябва да търсиш думи или изрази които не се променят и са уникални за всеки файл.
 
До тук си спретнах нещо на бързчко...
Но само не разбрах как да проверя за сменено име или директория на файла.
Например на пърият ред слагам:
$ready1 - за първият файл
$ready2 - за вторият файл. и т.н
И как може да проверява файловете дали съществува този ред?
И ако съществува да ми ми извежда новото име на файл и новата му директория.

Ето го моят код за сега:
PHP:
<?PHP 
$array = array('http://aresgroup.bg/news.php', 'http://194.12.229.98/photos/69/123/123238m.jpg', 'http://aresgroup.bg/news1.php');
foreach ($array as $i => $value) {
	if (fopen($value, "r")) {
	echo " Файлът <a href=$value><b>$value</b></a> съществува!<BR />";
	} else {
	echo "Файлът <b>$value</b> не съществува!<BR />";
}
}
?>

Като резултатите който извежда са:
Код:
Файлът http://aresgroup.bg/news.php съществува!
Файлът http://194.12.229.98/photos/69/123/123238m.jpg съществува!

Warning: fopen(http://aresgroup.bg/news1.php) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/aresgrou/public_html/technical/testov.php on line 4
Файлът http://aresgroup.bg/news1.php не съществува!

Като първият и вторият файл - съществуват , а 3-тият не.
И как да магна това предупреждение, за да остане само "Файлът http://aresgroup.bg/news1.php не съществува!".

Мерси предварително колеги.
 
Дойдоха ми някои идеи. Можеш например в края на името на всеки файл да добавяш по уникален ключ и при всяка промяна сканираш ключа и проверяваш в базата къде е стоял и съответно правиш корекции. Друг вариант е пък да пазиш например MD5 checksum-ите и така като сканираш някаква директория и се окаже, че има нов файл, правиш му чексума, проверяваш дали в базата ти данни вече има такъв, ако има проверяваш дали все още съществува - ако не - значи е бил преместен или нещо подобно. Питай в StackOverflow там също могат да ти дадат идеи
 

Горе