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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Массовая смена прав доступа к директориям

Сообщения:  [1-10]   [11-17] 

 
 автор: Владимир55   (30.12.2008 в 18:23)   письмо автору
 
   для: GeorgeIV   (30.12.2008 в 17:43)
 

"и делаю все права на все вложенные папки и файлы нескольким щелчками мыши."

286 папок, в каждой из которых по 4-10 подддиректорий, в некоторых из которых есть еще по одной поддиректории... Вот и хотелось как по-проще - и на сейчас, и, главное, на будущее.

  Ответить  
 
 автор: xx77   (30.12.2008 в 17:53)   письмо автору
 
   для: Владимир55   (30.12.2008 в 17:33)
 

из любой дирректории такие функции будут работать если записать полный путь к корню
xxxxxx('/home/site/www');
Возможно и с относительными путями будет работать как xxxxxx('../../../www'); но я-бы так не делал

и ещё масса препятствий может получиться, таких как safe_mode , как выше говорилось является-ли владелец дирректорий тем-же пользователем от имени которого выполняются скрипты, и даже однажды столкнулся с тем что is_dir() не работала уровнями выше скрипта.

  Ответить  
 
 автор: GeorgeIV   (30.12.2008 в 17:43)   письмо автору
 
   для: Владимир55   (30.12.2008 в 10:40)
 

Перенося сайты на сервер, я встретился с такой проблемой: очень много папок (сотни
 папок с поддиректориями) должны иметь права доступа 777. Делать это вручную - долго и
 утомительно. Хотелось бы сделать служебный скриптик, который бы отыскал ВСЕ папки в
 корне сайта, и установил бы на них и на вложенные папки права доступа 777.

А с помощью какого нибудь клиента не проще? Я беру WinSCP и делаю все права на все вложенные папки и файлы нескольким щелчками мыши.

  Ответить  
 
 автор: Владимир55   (30.12.2008 в 17:33)   письмо автору
 
   для: xx77   (30.12.2008 в 17:22)
 

В исходной формулировке вопроса самой последней строкой я привел выражение

DirDelete("kniga");  // Здесь имя удаляемой директории. Удаляется вместе с папками и файлами! 


определяющее директорию, с которой начинается обработка.

В моем случае - это корень сайта.

Не могли бы Вы подсказать, как пишется выражение
DirDelete("kniga");   
для корня сайта?

  Ответить  
 
 автор: xx77   (30.12.2008 в 17:22)   письмо автору
 
   для: Владимир55   (30.12.2008 в 16:41)
 

сделайте другими функциями
<?php
$time
=0;
function 
g_t($bool=false){ //время
 
global $time;
 list(
$m$s) = sscanf(microtime(), '%f %u');
 if(
$boolprintf("%.7f", (($m += $s) - $time));
 else 
$time=$m $s;
}
set_time_limit(0);
ini_set('max_execution_time'0);

g_t();

function 
xxxxxx($dir) {
 
$dh opendir$dir );
 while(
$file readdir($dh)) {
    if (
is_dir($dir '/' $file) && $file{0} != '.') {

        echo 
$file ' - ';
        
//  if (chmod($dir . '/' . $file, 0777)) echo 'ok'; 
        
echo '<br>' ."\n"
      
xxxxxx($dir '/' $file);
    }
 }
}

xxxxxx('.');
g_t(1);
?>

  Ответить  
 
 автор: Владимир55   (30.12.2008 в 16:41)   письмо автору
 
   для: xx77   (30.12.2008 в 14:45)
 

И всё же, как избавить от инвалидности и довести до рабочего состояния вот этот предложенный Loki код:

function rglob($pattern='*', $flags = 0, $path='') 

    $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); 
    $files=glob($path.$pattern, $flags); 
    foreach ($paths as $path) { $files=array_merge($files,rglob($pattern, $flags, $path)); } 
    return $files; 

foreach (rglob($_SERVER['DOCUMENT_ROOT']."*", GLOB_ONLYDIR) as $dir) {chmod($dir, 0777);} 

  Ответить  
 
 автор: xx77   (30.12.2008 в 14:45)   письмо автору
 
   для: Владимир55   (30.12.2008 в 13:06)
 

Всмысле Warning: Invalid argument supplied for foreach() ?
значит первым параметром foreach оказался не массив, следовательно rglob() как и возможно glob() ничего не вернула.

Если потом в планах есть редактировать файлы вручную через FTP лучше ничего не делать функциями работающими через файловую систему,
или потом будет возможность что-то делать только скриптами (cms вобщем нужна потом).

// если не говорить о ssh
я так думаю

  Ответить  
 
 автор: xx77   (30.12.2008 в 14:43)   письмо автору
 
   для: Владимир55   (30.12.2008 в 13:06)
 

.

  Ответить  
 
 автор: Владимир55   (30.12.2008 в 13:33)   письмо автору
 
   для: Loki   (30.12.2008 в 13:16)
 

А если закачать архив, и затем его разъархивировать скриптом.

Это не поможет делу?

  Ответить  
 
 автор: Loki   (30.12.2008 в 13:16)   письмо автору
 
   для: Владимир55   (30.12.2008 в 12:37)
 

тогда через консоль

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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