Показать полную графическую версию : помогите с php
morgan1991
19-08-2008, 19:33
Помогите ктонить плиз.
Нужно на php написать такой код, чтобы он проверял не изменился ли файл по размекру не удалился и т.д.
Короче чтобы нельзя было изменить файл или удалить его файл будет находится на хостинге на котором каждый может записывать файлы и удалять любые другие.
Ну допустим - изменился или удалился. Что должен сделать скрипт?
morgan1991
19-08-2008, 19:58
Igor_I, скрипт должен перезакачать файл заново если с ним чтото стало.
Компьютер выполнят только то, что скажет человек, а он должен предусмотреть все случаи.
Код примерно такой
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
$somecontent = "Добавить это к файлу\n";
// Вначале убедимся, что файл существует и доступен для записи.
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'w')) {
echo "Не могу открыть файл ($filename)";
exit;
}
// Записываем $somecontent в наш открытый файл.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Не могу произвести запись в файл ($filename)";
exit;
}
echo "Ура! Записали ($somecontent) в файл ($filename)";
fclose($handle);
} else {
echo "Файл $filename недоступен для записи";
}
}
morgan1991
19-08-2008, 22:12
Igor_I, объясните плиз, скрипт видит есть ли файл на сервере или нет, а мне нужно чтобы он с сервера закачивал файл на ip в котором разрешено добавлять файлы без всяких паролей допустим так \\127.0.0.1\new\ когда на сервер закачается файл то чтобы он постоянно проверял не изменился ли файл? Можно так? Или нужно будет постоянно заходить на страницу php чтобы скрипт выполнял проверку?
А этот скрипт выполняет только проверку. Есть ли файл или нет.
Скрипт проверки забиваем в nncron или в планоровщик.
Но работоспособность скрипта я не проверял. Сейчас может попробуем.
morgan1991
21-08-2008, 20:09
Какой nncron или в планоровщик »
?????
Мне нужно чтобы работало на сервере и запрещало удалять файл или изменять, который лежит на другом сервере на другом сервере.
Запретить удалить файл могут только права на этот файл, то есть отсутствие прав на удаление файла. В твоем случае этого нет, а значит только проверка на наличие файла, есть он или нет.
<?php
$filename = '\\\igorserver\tmp\ipfw.txt';
$source = 'C:\Program Files\Apache Group\Apache\htdocs\ipfw.txt';
$newfile = '\\\igorserver\tmp\ipfw.txt';
if (file_exists($filename)) {
echo "Файл $filename еще на месте. \n";
} else {
echo "Файл $filename уже удален. \n";
if (file_exists($source)) {
echo "Исходный файл $source еще на месте. Можно его скопировать.";
$copy = file_get_contents ($source);
file_put_contents ($newfile, $copy);
} else {
echo "Исходного файла $source нету!!!. Что делать дальше - не знаю!!!";
}
}
?>
morgan1991
21-08-2008, 22:37
Чтото не работает:
Файл 1\1.txt уже удален. Исходный файл 1.txt еще на месте. Можно его скопировать.
Fatal error: Call to undefined function: file_put_contents() in p:\home\phpbb\www\index.php on line 16
<?php
$filename = '1\1.txt';
$source = '1.txt';
$newfile = '1\1.txt';
if (file_exists($filename)) {
echo "Файл $filename еще на месте. \n";
} else {
echo "Файл $filename уже удален. \n";
if (file_exists($source)) {
echo "Исходный файл $source еще на месте. Можно его скопировать.";
$copy = file_get_contents ($source);
file_put_contents ($newfile, $copy);
} else {
echo "Исходного файла $source нету!!!. Что делать дальше - не знаю!!!";
}
}
?>
Я решил что 5 версия есть у всех. Наверно глупо просить обновить версию PHP.
<?php
$filename = '\\\igorserver\tmp\ipfw.txt';
$source = 'C:\Program Files\Apache Group\Apache\htdocs\ipfw.txt';
$newfile = '\\\igorserver\tmp\ipfw.txt';
if (file_exists($filename)) {
echo "Файл $filename еще на месте. \n";
} else {
echo "Файл $filename уже удален. \n";
if (file_exists($source)) {
echo "Исходный файл $source еще на месте. Можно его скопировать.";
$copy = file_get_contents ($source);
if (!$handle = fopen($filename, 'a')) {
echo "Не могу открыть файл ( $filename )";
exit;
}
// Записываем $somecontent в наш открытый файл.
if (fwrite($handle, $copy) === FALSE) {
echo "Не могу произвести запись в файл ( $filename )";
exit;
}
echo "Ура! Записали в файл ( $filename )";
fclose($handle);
} else {
echo "Исходного файла $source нету!!!. Что делать дальше - не знаю!!!";
}
}
?>
morgan1991
22-08-2008, 01:54
СПС вот теперь всё норм, скажите а нельзя зделать так чтобы скрипт постоянно сам проверял есть ли фай , а не только тогда когда я захожу на страницу??
Включаем соображалку.
Ответ был уже дан.
morgan1991
25-08-2008, 14:00
Igor_I, я имел ввиду чтобы скрипт работал сам даже если у меня выключен компьютер, на удалённом сервере.
Можно сделать так?
morgan1991, для начала - http://phpfaq.ru/na_tanke.
А теперь вопрос, на каком сервере?
Тебе нужен сервер на котором есть PHP.
morgan1991
26-08-2008, 02:31
ну допустим я кину файлик (этот) на бесплатный хостинг поддерживающий php и все навороты
можно ли сделать чтобы скрипт работал сам без помощи автоматизаторов планировщиков????
morgan1991, нет. Единственное, что вы можете сделать это проinclude'ить его во все страницы Вашего сайта.
morgan1991
26-08-2008, 13:06
СПС всем кто помогал
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.