Честно говоря, в 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 . '"');
}
?>