Привет, я создаю веб-сайт, для которого требуется динамическая сборка филистратора на основе сведений о реестре пользователей, это было бы при создании каталога usr, уровень подкаталога был бы идентификатором каталога на основе php-скрипта, это пока что я может не создавать проблем с chmod 777. Однако, когда я пытаюсь создавать подкаталоги в каталоге id, такие как папка с изображениями, а затем html-папка и папка css, я все время получаю ошибки разрешения. сервер - это сервер linux на моей учетной записи хостинга реселлеров
Ниже приведен код php
$dirPath = "../userDirectory/$diectoryid/";
echo $ dirPath;
mkdir ('$dirPath/image/',0777,true);
Когда вы используете одинарные кавычки, PHP будет интерпретировать это буквально. Поэтому в вашем случае он попытается создать: $ dirPath/image/(не VALUE из $ dirPath, а $ dirPath как имя)
Замените вторую строку кода на:
mkdir($dirPath . 'image/', 0777, true);
Если остальная часть вашего кода в порядке, она должна создать папку без ошибок.
Как отмечалось в комментариях до того, как эта деталь фактически вызвала проблему здесь, а не фактические разрешения на доступ к файлам:
Эта строка не имеет смысла: mkdir ('$dirPath/image/',0777,true);
, $dirPath
не будет расширяться, но будет взята буквально здесь из-за одиночных кавычек. Таким образом, вы создаете папку с именем $dirPath
... Используйте двойные кавычки или конкатенацию:
Или:
mkdir ("$dirPath/image/",0777,true);
Или:
mkdir ($dirPath . '/image/',0777,true);
$dirpath
а во-вторых, это не повлияет на действие, поэтому на самом деле сделайте вещи более надежными, потому что в случае, если $dirPath
не содержит завершающий слеш, все снова сломается. Так что я бы предпочел это так :-)