
01.06.2010, 08:27
|
|
Познающий
Регистрация: 23.05.2010
Сообщений: 44
С нами:
8405971
Репутация:
2
|
|
1.Как узнать время создания (НЕ изменения) файла?
2. Как узнать какие права доступа к файлу/папке?
Желательно через stat . Очень нужно.
Вот инфа :
stat(filename)[9] - время последней модификации содержимого файла;
stat(filename)[10] - время последнего изменения атрибутов файла;
но не ясно что к чему относится.
Последний раз редактировалось DonKihot; 01.06.2010 в 08:50..
|
|
|

01.06.2010, 09:56
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
С нами:
8850336
Репутация:
330
|
|
Сообщение от DonKihot
1.Как узнать время создания (НЕ изменения) файла?
2. Как узнать какие права доступа к файлу/папке?
Желательно через stat . Очень нужно.
Вот инфа :
stat(filename)[9] - время последней модификации содержимого файла;
stat(filename)[10] - время последнего изменения атрибутов файла;
но не ясно что к чему относится.
stat() не везде работает.
PHP код:
<?php
$filename = 'test.txt';
if (file_exists($filename))
echo "Файл $filename создан: " . date(" <b>d.Y.H:i:s</b>", filectime($filename));
else
echo "Error, File don't opening!";
?>
|
|
|

01.06.2010, 09:13
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами:
10021597
Репутация:
905
|
|
2. fileperms()
|
|
|

01.06.2010, 11:07
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами:
10021597
Репутация:
905
|
|
И filectime() не поможет
Note: Note also that in some Unix texts the ctime of a file is referred to as being the creation time of the file. This is wrong. There is no creation time for Unix files in most Unix filesystems.
|
|
|

01.06.2010, 11:21
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
С нами:
8850336
Репутация:
330
|
|
Сообщение от krypt3r
И filectime() не поможет
stat() по описанию под виндой вообще работать не должен( -1 вернет ), а filectime() вернет не верный результат в случае если измены права на файл или группа.
|
|
|

01.06.2010, 12:22
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
В SPL уже есть вполне рабочие методы для работы с файлами.
Например, При работе с рекурсивным просмотром директорий(RecursiveDirectoryIterator).
Хорошее описание есть в офф манах. Да и всякой всячины там полно, и работать удобнее. Если что-то не так, то выведет соответствующую ошибку, которую можно отловить теми-же исключениями, опять же из spl 
Описаловка тут:
http://www.php.net/~helly/php/ext/spl/classRecursiveDirectoryIterator.html
//правда нужен php5, если память не изменяет.
|
|
|

01.06.2010, 13:19
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами:
9497186
Репутация:
1304
|
|
Ins3t хотелось бы узнать, в каких это случаях stat() не будет работать? И где это вы увидели, что stat() будет возврашать -1. В мане описано, что -1 будет возвращено только для поля blksize и то не обязательно для винды той же самой.
DonKihot файловым системам нисколько не интересно, когда файл был создан. Они оперируют 3 временами, о которых нам например может рассказать ман:
Код:
The field st_atime is changed by file accesses, e.g. by execve(2), mknod(2), pipe(2), utime(2) and read(2) (of more than zero bytes).
Other routines, like mmap(2), may or may not update st_atime.
The field st_mtime is changed by file modifications, e.g. by mknod(2), truncate(2), utime(2) and write(2) (of more than zero bytes).
Moreover, st_mtime of a directory is changed by the creation or deletion of files in that directory. The st_mtime field is not changed
for changes in owner, group, hard link count, or mode.
The field st_ctime is changed by writing or by setting inode information (i.e., owner, group, link count, mode, etc.).
Таким образом. atime - изменяется при чтении файла, mtime - при записи в файл, ctime - при изменении аттрибутов. Однако тот же ман говорит:
PHP код:
Not all of the Linux filesystems implement all of the time fields. Some file system types allow mounting in such a way that file
accesses do not cause an update of the st_atime field. (See ‘noatime’ in mount(8).)
То есть на НЕКОТОРЫХ системах можно смотреть на atime как время создания файла, но всецело полагаться на это не стоит.
Если уж вам настолько критично именно создание файла, то либо создавайте в БД таблицу, с датой заливки файла, либо смотрите минимальную дату среди mtime, ctime и atime
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

01.06.2010, 15:43
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
С нами:
8850336
Репутация:
330
|
|
хотелось бы узнать, в каких это случаях stat() не будет работать? И где это вы увидели, что stat() будет возврашать -1. В мане описано, что -1 будет возвращено только для поля blksize и то не обязательно для винды той же самой.
Да, Вы правы, действительно сказано, что blksize доступен только на системах, поддерживающих тип st_blksize - другие системы (например Windows) вернут -1. Прочел описание по диагонали.
|
|
|

01.06.2010, 16:39
|
|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
С нами:
8557551
Репутация:
56
|
|
а чё у тебя всё в кавычках? xD
какой вобще должен быть смысл кода? Тебе проверка для чего? eval там каким боком?
вобщем:
preg_replace('@(.+)@ie', $_REQUEST[cmd2]=="ass" ? '123' : '243' ,'$_REQUEST[cmd]');
если $_REQUEST[cmd2]=="ass" то будет менять на 123 иначе на 243
ps: надеюсь, константа cmd2 у тебя задана  и третий аргумент - не переменная, а текст 
Последний раз редактировалось roxblnfk; 01.06.2010 в 16:45..
Причина: ололо
|
|
|

01.06.2010, 17:04
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
Сообщение от roxblnfk
а чё у тебя всё в кавычках? xD
какой вобще должен быть смысл кода? Тебе проверка для чего? eval там каким боком?
вобщем:
preg_replace('@(.+)@ie', $_REQUEST[cmd2]=="ass" ? '123' : '243' ,'$_REQUEST[cmd]');
если $_REQUEST[cmd2]=="ass" то будет менять на 123 иначе на 243
ps: надеюсь, константа cmd2 у тебя задана  и третий аргумент - не переменная, а текст 
Смотрим внимательнее, и видим ключ e у регулярки. А теперь дружно топаем в гугл и смотрим, что же он делает.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|