PHP.mk документација

chmod

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.chmod.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.chmod.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
chmod

Референца за `function.chmod.php` со подобрена типографија и навигација.

function.chmod.php

chmod

(PHP 4, PHP 5, PHP 7, PHP 8)

chmodПромени режим на датотека

= NULL

chmod(string $filename, int $permissions): bool

Се обидува да го промени режимот на наведената датотека во оној даден во permissions.

Параметри

filename

Патека до датотеката.

permissions

Имајте предвид дека permissions не се претпоставува автоматски како октална вредност, така што за да се обезбеди очекуваната операција, треба да претставувате permissions со нула (0). Низи како "g+w" нема да работат правилно.

<?php
chmod
("/somedir/somefile", 755); // decimal; probably incorrect
chmod("/somedir/somefile", "u+rwx,go+rx"); // string; incorrect
chmod("/somedir/somefile", 0755); // octal; correct value of mode
?>

На permissions параметарот се состои од три октални бројчани компоненти што специфицираат ограничувања за пристап за сопственикот, корисничката група во која е сопственикот и за сите други по овој редослед. Една компонента може да се пресмета со сумирање на потребните дозволи за таа целна корисничка база. Бројот 1 значи дека доделувате права за извршување, бројот 2 значи дека ја правите датотеката запишлива, бројот 4 значи дека ја правите датотеката читлива. Сумирајте ги овие броеви за да ги специфицирате потребните права. Можете исто така да прочитате повеќе за режимите на Unix системи со '(PHP 4, PHP 5, PHP 7, PHP 8)' и 'man 1 chmod'.

<?php
// Read and write for owner, nothing for everybody else
chmod("/somedir/somefile", 0600);

// Read and write for owner, read for everybody else
chmod("/somedir/somefile", 0644);

// Everything for owner, read and execute for others
chmod("/somedir/somefile", 0755);

// Everything for owner, read and execute for owner's group
chmod("/somedir/somefile", 0750);
?>

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

Errors/Exceptions

Бидејќи типот на податоци integer во PHP е со знакот и многу платформи користат 32-битни integers, некои функции за датотечниот систем може да вратат неочекувани резултати за датотеки поголеми од 2GB. E_WARNING се емитува.

Белешки

Забелешка:

Тековниот корисник е корисникот под кој работи PHP. Веројатно не е истиот корисник што го користите за нормален пристап до школка или FTP. Режимот може да се промени само од корисникот што ја поседува датотеката на повеќето системи.

Забелешка: Оваа функција нема да работи на Оваа опција овозможува fopen обвивки свесни за URL-и кои овозможуваат пристап до URL објекти како датотеки. Стандардни обвивки се обезбедени за пристап до бидејќи датотеката што треба да се испита мора да биде достапна преку датотечниот систем на серверот.

Види Исто така

  • chown() - Ги менува сопственикот на датотеката
  • chgrp() - Ги менува групата на датотеката
  • fileperms() - Ги добива дозволите на датотеката
  • stat() - Дава информации за датотека

Белешки од корисници 6 белешки

MethodicalFool
пред 15 години
BEWARE, a couple of the examples in the comments suggest doing something like this:

chmod(file_or_dir_name, intval($mode, 8));

However, if $mode is an integer then intval( ) won't modify it.  So, this code...

$mode = 644;
chmod('/tmp/test', intval($mode, 8));

...produces permissions that look like this:

1--w----r-T

Instead, use octdec( ), like this:

chmod(file_or_dir_name, octdec($mode));

See also: http://www.php.net/manual/en/function.octdec.php
man 2 chmod
пред 16 години
BEWARE using quotes around the second parameter...

If you use quotes eg

chmod (file, "0644");

php will not complain but will do an implicit conversion to an int before running chmod. Unfortunately the implicit conversion doesn't take into account the octal string so you end up with an integer version 644, which is 1204 octal
masha на mail dot ru
20 години пред
Usefull reference:

Value    Permission Level
400    Owner Read
200    Owner Write
100    Owner Execute
40    Group Read
20    Group Write
10    Group Execute
4    Global Read
2    Global Write
1    Global Execute

(taken from http://www.onlamp.com/pub/a/php/2003/02/06/php_foundations.html)
chris на ocproducts dot com
пред 6 години
Windows has a very different file permission model to Unix and integrates them only minimally.

On Windows, all this function can do is to change the "read only" flag, which is turned on if $mode & 0200 does not pass.
i.e. it only checks if u+w is missing from the bitmask, and if it is, it sets the read only flag.

The executable flag cannot be set as Windows determines it based on file extension.
The write flag cannot be set as Windows determines write access based on ACLs, which are not integrated here.
alex на feidesign dot com
20 години пред
If you cannot chmod files/directories with PHP because of safe_mode restrictions, but you can use FTP to chmod them, simply use PHP's FTP-functions (eg. ftp_chmod or ftp_site) instead. Not as efficient, but works.
sander
пред 16 години
if you want to chmod directories too, use this 

<?php
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST);

foreach($iterator as $item) {
    chmod($item, $filemode);
}
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.