Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: функции передается имя файла на сервере.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: необходимо написать функцию getFilesActual(string $filename)
linx7272
Отправлено: 23 Ноября, 2008 - 18:09:09
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




необходимо написать функцию getFilesActual(string $filename)

Система такая: функции передается имя файла на сервере. Функция читает время последних изменений в этом файле и сравнивает его с некоторым параметром в куках если он есть. После этого переписывает параметр на текущее время.

Если время больше - функция возвращает имя файла с рандомным параметром в конце. Если нет - просто имя файла.
Помогите пожалуйста! Хорошо
 
 Top
Champion Супермодератор
Отправлено: 23 Ноября, 2008 - 18:30:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Нуу...как бы... алгоритм вы описали, что мешаем вам его реализовать?
 
 Top
linx7272
Отправлено: 24 Ноября, 2008 - 09:42:55
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




<?php
function getFilesActual($filename)
{
if(is_file($filename))
{
list($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($filename);
$file_name = basename($filename);
return "Имя файла: $file_name, время последних изменений $file_name:\n $mtime";
}
else
{
echo "Файл не существует.";
}

}

$s1="D:/it/home/test/www/index1.4.php";
echo getFilesActual($s1)."\n<br>";
?>
(Добавление)
<?php
function getFilesActual($filename)
{
if(is_file($filename))
{
list($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($filename);
$file_name = basename($filename);
return "Имя файла: $file_name, время последних изменений $file_name:\n $mtime";
}
else
{
echo "Файл не существует.";
}

}

$s1 = $_SERVER["DOCUMENT_ROOT"]."test/index1.5.php";
echo getFilesActual($s1)."\n<br>";



?>
 
 Top
ALEN
Отправлено: 24 Ноября, 2008 - 10:16:46
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




linx7272 пишет:
$s1 = $_SERVER["DOCUMENT_ROOT"]."test/index1.5.php";

linx7272 пишет:
$s1="D:/it/home/test/www/index1.4.php";

Если файл находится в одном файле с исполнением функции то, просто напишите:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $s1 = "index1.5.php";
  3.  

Но не нужно вести его относительно Вашего ПК.
(Добавление)
linx7272
Если в функции используете return , то всегда его в функции используйте.
А то если файл не существует выйдет по логике, что-то похожее на:
echo echo "Файл не существует.";."\n<br>";

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. function getFilesActual($filename)
  4. {
  5. if(is_file($filename))
  6. {
  7. list($dev, $inode, $inodep, $nlink, $uid, $gid, $inodev, $size, $atime, $mtime, $ctime, $bsize) = stat($filename);
  8. $file_name = basename($filename);
  9. return "Имя файла: $file_name, время последних изменений $file_name:\n $mtime";
  10. }
  11. else
  12. {
  13. return  "Файл не существует.";
  14. }
  15.  
  16. }
  17.  
  18. $s1 = "index1.5.php";
  19. echo getFilesActual($s1)."\n<br>";
  20.  
  21.  
  22.  
  23. ?>
  24.  
 
 Top
linx7272
Отправлено: 24 Ноября, 2008 - 10:53:20
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Переписал немного
<?php
function getFilesActual($filename)
{
if(is_file($filename))
{
$filemod = filemtime($filename);
$filemodtime = date("Y-m-d H:i:s", $filemod);

$mtime = filemtime($filename).date("Y-m-d H:i:s");
$file_name = basename($filename);
return "Имя файла: $file_name, время последних изменений $file_name:\n$filemodtime, ";

}
else
{
echo "Файл не существует.";
}
}

$s1 = $_SERVER["DOCUMENT_ROOT"]."test/rating.php";
echo getFilesActual($s1)."\n<br>";
?>
Функция читает время последних изменений в этом файле и сравнивает его с некоторым параметром в куках если он есть. После этого переписывает параметр на текущее время.

Если время больше - функция возвращает имя файла с рандомным параметром в конце. Если нет - просто имя файла. Вот с куками у меня проблема!!!
(Добавление)
<?php
function getFilesActual($filename)
{
if(is_file($filename))
{
$filemod = filemtime($filename);
$filemodtime = date("Y-m-d H:i:s", $filemod);
$file_name = basename($filename);
return "Имя файла: $file_name, время последних изменений $file_name:\n$filemodtime, ";

}
else
{
echo "Файл не существует.";
}
}

$s1 = $_SERVER["DOCUMENT_ROOT"]."test/rating.php";
echo getFilesActual($s1)."\n<br>";
?>
 
 Top
ALEN
Отправлено: 24 Ноября, 2008 - 10:56:36
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




linx7272
Обратите внимание на мои замечания!
 
 Top
linx7272
Отправлено: 24 Ноября, 2008 - 12:10:06
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




<?php
function getFilesActual($filename)
{
$file_name = basename($filename);
if (file_exists($file_name) && is_file($file_name))
{
$modtime = filemtime($filename);
$filemodtime = date("Y-m-d H:i:s", $modtime);
setcookie('time_etalon',$filemodtime);

if (isset($_COOKIE['time_etalon']) && $_COOKIE['time_etalon'])
{
if ($_COOKIE['time_etalon'] > $filemodtime) {
$ret = $file_name.mt_rand();
} else {
$ret = $file_name;
}
setcookie('time_etalon',$filemodtime);
}
return $ret;
}
}
$s1 = $_SERVER["DOCUMENT_ROOT"]."test/index1.5.php";
echo getFilesActual($s1)."\n<br>";
?>

Мне подсказали но откуда берется time_etalon и вообщем немогу нечего вывести с помощью этой функции потому как неврубаюсь что это за time_etalon
 
 Top
ALEN
Отправлено: 24 Ноября, 2008 - 12:35:45
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




linx7272
setcookie('time_etalon',$filemodtime);
 
 Top
linx7272
Отправлено: 24 Ноября, 2008 - 12:40:14
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Система такая: функции передается имя файла на сервере. Функция читает время последних изменений в этом файле и сравнивает его с некоторым параметром в куках если он есть. После этого переписывает параметр на текущее время. Не подскажите как с этим быть?
 
 Top
ALEN
Отправлено: 24 Ноября, 2008 - 12:43:12
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




linx7272
Ты что спамер?
 
 Top
linx7272
Отправлено: 24 Ноября, 2008 - 12:47:59
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Нояб. 2008  


Помог: 0 раз(а)




Нет Хорошо просто новичок в этом деле. И еще как написать чтобы возвр. ошибку если файл не сущ. в виде путя и имени файла???
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB