Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать составной оператор
 
 автор: Владимир55   (02.04.2008 в 14:42)   письмо автору
 
 

По какой-то причине при создании папки она получется с правами 755, хотя они задаются в виде 777. И тогда приходится делать дополнительную операции задания прав на папку, после чего права делаются 777.

Сейчас это делается так:

if (@!opendir("stat-pos/" . $name_str))
{
mkdir(("stat-pos/" . $name_str), 0777);
chmod(("stat-pos/" . $name_str), 0777);
}

Как написать одной строкой оператры chmod и mkdir (чтобы упростить конструкцию if )?

   
 
 автор: mihdan   (02.04.2008 в 14:54)   письмо автору
 
   для: Владимир55   (02.04.2008 в 14:42)
 

umask()

   
 
 автор: Владимир55   (02.04.2008 в 15:07)   письмо автору
 
   для: mihdan   (02.04.2008 в 14:54)
 

Что-то я не сумел это применить.

Не могли бы пояснить примером создание директории с правами 0777 посредством umask()?

   
 
 автор: mihdan   (02.04.2008 в 15:11)   письмо автору
 
   для: Владимир55   (02.04.2008 в 15:07)
 

http://www.skillz.ru/dev/freebsd/article-umask_masks.html
http://ru2.php.net/manual/ru/function.umask.php

<?
umask
(022);
mkdir(("stat-pos/" $name_str), 0777); 
?>


Это для прав 0755

Пользовательской маске режима создания файлов присваивается указанное восьмеричное значение. Три восмеричные цифры соответствуют правам на чтение/запись/выполнение для владельца, членов группы и прочих пользователей соответственно. Значение каждой заданной в маске цифры вычитается из соответствующей "цифры", определенной системой при создании файла. Например, umask 022 удаляет права на запись для членов группы и прочих пользователей (у файлов, создававшихся с режимом 777, он оказывается равным 755; а режим 666 преобразуется в 644). Если маска не указана, выдается ее текущее значение.

   
 
 автор: Владимир55   (02.04.2008 в 15:38)   письмо автору
 
   для: mihdan   (02.04.2008 в 15:11)
 

Хитренько придумано!

Спасибо!

   
 
 автор: Atheist   (02.04.2008 в 15:19)   письмо автору
 
   для: Владимир55   (02.04.2008 в 14:42)
 

> if (@!opendir("stat-pos/" . $name_str))
Ты так и не исправил?

   
 
 автор: Владимир55   (02.04.2008 в 15:39)   письмо автору
 
   для: Atheist   (02.04.2008 в 15:19)
 

Вот сейчас и исправляю...

Фрагментов же таких у меня много!

   
 
 автор: Atheist   (02.04.2008 в 15:40)   письмо автору
 
   для: Владимир55   (02.04.2008 в 15:39)
 

Тут явно нужно if( !is_dir("stat-pos/" . $name_str) ) ...

   
 
 автор: Владимир55   (02.04.2008 в 16:42)   письмо автору
 
   для: Atheist   (02.04.2008 в 15:40)
 

Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования