Выставление CHMOD в PHP

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

Так этого и хочется... выставить права на все index.* и *.htaccess
Так как php не оч хорошо знаю а второй в-т вроде достаточно больш
подумал что в нем лего реализовывается такая функция...

Правильно ли я понимаю что теперь нужно собирать/искать блок
поиска по маске и привязывать его к 2му скрипту :/ ?
 
Так этого и хочется... выставить права на все index.* и *.htaccess

Но ты про это не говорил, в начале темы.


Смысл такой маски?

Правильно ли я понимаю что теперь нужно собирать/искать блок
поиска по маске и привязывать его к 2му скрипту :/ ?

Ну можно решить этот вопрос регулярками
PHP:
function _CHMOD_DIR_FILES($chmod,$ext,$enclosed) 
{ 
	global $match;
        foreach (glob("{*,.*}",GLOB_BRACE) as $file) { 
                if ($file=='.' || $file=='..') continue; 
                if (is_dir($file) && $enclosed === TRUE) { 
                   if (!@chdir($file))continue; 
                   chmod($file, $chmod); 
                   _CHMOD_DIR_FILES($chmod,$ext,$enclosed); 
                   chdir(".."); 
                } elseif ((!empty($ext) && $ext == '*' || strtolower(pathinfo($file,PATHINFO_EXTENSION)) == $ext) || preg_match('%'.$match.'%', $file)) { 
                    chmod($file, $chmod); 
                } 
        } 
}

Сделай дополнительное поле инпута, туда будешь вписывать регулярки для тех файлов которым нужно поставить chmod

засунешь результат поля в переменную $match ну а дальше функция сама ее возьмет.
 
PHP:
...
	global $match;
...
Сделай дополнительное поле инпута, туда будешь вписывать регулярки для тех файлов которым нужно поставить chmod
засунешь результат поля в переменную $match ну а дальше функция сама ее возьмет.
Может не глобал, а лучше дополнительный параметр в функцию? Тогда она будет независимой от скрипта...
 
Ды я глобал заюзал только для того, чтобы человеку меньше править было, а то потом еще будут вопросы, почему возникли ошибки и т.д.
 
Попробовал сделать как вы сказали:
Код:
function _CHMOD_DIR_FILES($chmod,$ext,$enclosed)
{
        foreach (glob("{*,.*}",GLOB_BRACE) as $file) {
                if ($file=='.' || $file=='..') continue;
                if (is_dir($file) && $enclosed === TRUE) {
                   if (!@chdir($file))continue;
                   _CHMOD_DIR_FILES($chmod,$ext,$enclosed);
                   chdir("..");
                } elseif (strtolower(pathinfo($file,PATHINFO_EXTENSION)) == $ext) {
                    chmod($file,$chmod);
                }
        }
}

на предложенный вами:

Код:
function _CHMOD_DIR_FILES($chmod,$ext,$enclosed) 
{ 
    global $match;
        foreach (glob("{*,.*}",GLOB_BRACE) as $file) { 
                if ($file=='.' || $file=='..') continue; 
                if (is_dir($file) && $enclosed === TRUE) { 
                   if (!@chdir($file))continue; 
                   chmod($file, $chmod); 
                   _CHMOD_DIR_FILES($chmod,$ext,$enclosed); 
                   chdir(".."); 
                } elseif ((!empty($ext) && $ext == '*' || strtolower(pathinfo($file,PATHINFO_EXTENSION)) == $ext) || preg_match('%'.$match.'%', $file)) { 
                    chmod($file, $chmod); 
                } 
        } 
}

и добавил:

Код:
   	<tr>
		<td class="menu">НОВЫЙ ИМПУТ by tostrss</td>
		<td align="right"><?=$match;?><INPUT TYPE=TEXT VALUE="/"> </td>
- не выставив в нем атрибут NAME="" ибо его не знаю.

В новом поле импута пробовал вводить index.* и *.html и index.html
Поле расширения оставлял пустым
- во всех результатах права менялись у всех файлов :(

Пробовал в новом ипуте вводить index
А в поле "расширение" html
- все тоже самое - права меняются у всех файлах

Пример в аттаче.
Что опять не так сотворил :thenks: ?
 

Вложения

  • chmod.txt
    10 KB · Просмотры: 3
лови подправленную версию


index.* и *.html и index.html

неправильно..нужно вводить регулярки аля такого типа
index\.(\w)
(.*?)\.(php|html)


и т.д.
 

Вложения

  • index.txt
    9,5 KB · Просмотры: 6
Вот этот кусок:
PHP:
elseif (empty($mask) || preg_match('%'.$mask.'%i', $file))
Имхо правильно будет:
PHP:
elseif (!empty($mask) || preg_match('%'.$mask.'%i', $file))
=)
 
Вот этот кусок:
PHP:
elseif (empty($mask) || preg_match('%'.$mask.'%i', $file))
Имхо правильно будет:
PHP:
elseif (!empty($mask) || preg_match('%'.$mask.'%i', $file))
=)


Сам то понял логику условия, что ты предложил?

У меня логика, что права на файл, будут выставлены только или маска пустая (тогда для всех файлов выставляется) или когда маска не пустая, и файл соотвесвует ей.

А у тебя, будет всегда выставлятся права, в незавимисимости от маски.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху