Intereting Posts
WordPress запрос одного сообщения от slug модель существует или нет в YII с использованием настраиваемой функции – Производительность Host DBpedia локально для категорий Получить визуализацию HTML из локального файла PHP Предупреждение: session_destroy (): попытка уничтожить неинициализированную сессию Проверьте, содержит ли строка определенное число Вход в сеанс vs HTTP-аутентификация. Преимущества недостатки Отправить письмо с помощью gmail smtp в zend? почему php генерирует одни и те же идентификаторы сеансов каждый раз в тестовой среде (WAMP)? PHP_INT_SIZE возвращает 4, но моя операционная система 64-битная mysql_real_escape_string не определено Codeigniter – загрузка определенной библиотеки JS на определенном виде Как добавить пользовательское слово на мой доменный URL для каждого запроса? Заполнение пробелов в датах, возвращаемых из базы данных – возможно использование чистого SQL-решения? цикл через несколько массивов и вставка в SQL

PHP-код mkdir ('images', '0777') создает папку с разрешениями 411! Зачем?

Я могу поклясться, что это работало вчера. Однако теперь код ниже разрушает папку без проблем, но создает новую папку с разрешениями 411, когда она должна быть 777. Мой код делал это вчера.

Цель этого – застегнуть папку, доставить ее, удалить изображения, а затем создать новый каталог для изображений.

Может ли кто-нибудь сказать мне, что я делаю неправильно или что я должен делать? благодаря

function delete_directory($dirname) { if (is_dir($dirname)) $dir_handle = opendir($dirname); if (!$dir_handle) return false; while($file = readdir($dir_handle)) { if ($file != "." && $file != "..") { if (!is_dir($dirname."/".$file)) unlink($dirname."/".$file); else delete_directory($dirname.'/'.$file); } } closedir($dir_handle); rmdir($dirname); return true; } $directoryToZip="jigsaw/"; // This will zip all the file(s) in this present working directory $outputDir="/"; //Replace "/" with the name of the desired output directory. $zipName="jigsaw.zip"; include_once("createzipfile/CreateZipFile.inc.php"); $createZipFile=new CreateZipFile; /* // Code to Zip a single file $createZipFile->addDirectory($outputDir); $fileContents=file_get_contents($fileToZip); $createZipFile->addFile($fileContents, $outputDir.$fileToZip); */ //Code toZip a directory and all its files/subdirectories $createZipFile->zipDirectory($directoryToZip,$outputDir); /* $rand=md5(microtime().rand(0,999999)); $zipName=$rand."_".$zipName; */ $fd=fopen($zipName, "wb"); $out=fwrite($fd,$createZipFile->getZippedfile()); fclose($fd); $createZipFile->forceDownload($zipName); @unlink($zipName); delete_directory('jigsaw/assets/images/jigsaw_image'); mkdir('jigsaw/assets/images/jigsaw_image','0777'); 

Related of "PHP-код mkdir ('images', '0777') создает папку с разрешениями 411! Зачем?"

Потому что вы должны использовать восьмеричный литерал 0777 , а не номер в строке "0777" , который на самом деле 01411 в восьмеричном.

У меня была одна и та же проблема, но даже после удаления кавычек разрешение не будет установлено на 0777.

 mkdir("infosheets/c/" , 0777); 

но созданная папка установлена ​​на 0755!

это решение:

 $test="infosheets/c/"; mkdir($test); chmod($test,0777); 

вы должны сначала сделать папку и установить ее разрешение 0777. Они должны быть сделаны отдельно по неизвестной причине для меня! странный!

 bool mkdir(string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context]]]) 

Параметр $mode является целым числом, а не строкой. 🙂

Вот пример :

 <?php mkdir("/path/to/my/dir", 0700); ?> 

Вы должны использовать:

 mkdir('jigsaw/assets/images/jigsaw_image', 0777); 

http://php.net/manual/en/function.mkdir.php

Второй аргумент должен быть int, а не строкой. Выньте цитаты.

так что вот еще одно решение, если вам нравится, что я пытаюсь переместить такие вещи, как настройки из приложения, в файл конфигурации [строки].

важно понимать, что система разрешений является восьмеричной! и использует систему бит-флагов, сгруппированную в триплеты 000 111 111 100, которая равна базовому 8-му номеру 0774.

если мы пропустим первые 3 двоичные цифры и подумаем о декларативном представлении «rwx», который «пишет» «читать» «выполнить», и вы в основном просто переключили все из них на «на» для каждого пользователя, группы и разрешили только чтение для «другие».

Поэтому, если вы думаете об этом, байт имеет 8 бит, и это действительно эффективный способ хранения 255 (2 ^ 8) -1 различных возможностей. Особенно, если вы думаете о том, когда был написан unix.

Если вы переведёте его в десятичное (базовое 10) представление, вы просто измените визуальную группировку, и вы заполните недостающие нулевые биты на основе маленькой или большой энтианской системы ( https://en.wikipedia.org/wiki/Endianness )

В качестве 32-битного представления для небольшого конца кода 00000000 00000000 00000001 11111100 aka 508, который вы на самом деле можете отличить как целое, и он будет работать. Даже если вы не произнесете его, то вывод типа интерпретатор будет работать.

Скорее всего, они используют small-int, который будет использовать только 16 бит вместо 32 :), но это еще более не соответствует теме …

более подробную информацию можно найти здесь 🙂 или google https://en.wikipedia.org/wiki/Filesystem_permissions

это просто означает контекстную информацию, чтобы понять, что происходит и как будет работать следующее решение.

TL; DR

 octdec("0774") 

делает трюк