imho.ws |
![]() |
![]() |
![]() |
# 1 |
Member
Регистрация: 30.05.2003
Адрес: Литва
Пол: Male
Сообщения: 329
![]() ![]() ![]() ![]() ![]() ![]() |
Проблемы с symlink()
Добрый день!
Возникли непонятки с symlink'ом. Мне нужно создать симлинк на директорию и получить ссылку на неё. Позже удалить симлинк. Пробовал делать вот таким способом : Код:
$target = APPLICATION_PATH.'/uploads/id/9/';//$target = APPLICATION_PATH."/uploads/id/$id/"; $link = "/uploads/id/$id/"; //$link = "/uploads/id/9/"; symlink($target, $link); //symlink(APPLICATION_PATH.'/uploads/id/9/','/uploads/id/9/'); ... clearstatcache(); unlink ($link) - кидает эррор: Ошибка: Код:
Warning: symlink() [function.symlink]: Cannot create symlink, error code(3) бывает и error code(103) Причём сделав вывод Код:
echo '<a href="'.$link.'">asd</a>'; Колдуя с путями ![]() В тех случаях, когда он создаётся - я не вычислил, за счёт чего он создаётся ![]() ![]() После удаления через Windows начинает снова кидать ошибки Использую PHP 5.3 из под Windows Пожалуйста подскажите, как с этим бороться ![]() |
![]() |
![]() |
# 2 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 478
![]() |
Из-под какой Windows? Вообще говоря, под версиями младше Vista/Server2008 оно и не должно работать...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
![]() |
![]() |
# 4 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 478
![]() |
Честно говоря, в PHP не силён.
Однако нашёл как минимум 2 сообщения о багах PHP при работе с симлинками и точками монтирования под Windows... А на страничке мануала http://php.net/manual/en/function.symlink.php нашлось обходное решение - использование стандартной Win-команды для создания симлинков. Код:
<?php define('SYMLINK_FILE', 0); define('SYMLINK_DIR', 1); define('SYMLINK_JUNCTION', 2); function symlink ($target, $link, $flag = SYMLINK_FILE) { switch ($flag) { case SYMLINK_DIR: $pswitch = '/d'; break; case SYMLINK_JUNCTION: $pswitch = '/j'; break; case SYMLINK_FILE: default: $pswitch = ''; break; } // Change / to \ because it will break otherwise. $target = str_replace('/', '\\', $target); $link = str_replace('/', '\\', $link); return exec('mklink ' . $pswitch . ' "' . $link . '" "' . $target . '"'); } ?>
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
![]() |
Теги (метки) |
symlink |
Опции темы | |
|
|