PHP | symlink 函数

Lasted 2021-01-25 16:24:14

symlink 函数创建符号链接。

symlink() 函数对于已有的 target 建立一个名为 link 的符号链接。成功后返回 true。

函数定义

symlink ( string $target , string $link ) : bool
// 源文件位于:ext/standard/link.c
# 函数定义

PHP_FUNCTION(symlink)
{
  ...
  if (!expand_filepath(frompath, source_p)) {
    php_error_docref(NULL, E_WARNING, "No such file or directory");
    RETURN_FALSE;
  }

  memcpy(dirname, source_p, sizeof(source_p));
  len = php_dirname(dirname, strlen(dirname));

  if (!expand_filepath_ex(topath, dest_p, dirname, len)) {
    php_error_docref(NULL, E_WARNING, "No such file or directory");
    RETURN_FALSE;
  }
  ...
  /* For the source, an expanded path must be used (in ZTS an other thread could have changed the CWD).
   * For the target the exact string given by the user must be used, relative or not, existing or not.
   * The target is relative to the link itself, not to the CWD. */
  ret = php_sys_symlink(topath, source_p);

  if (ret == -1) {
    php_error_docref(NULL, E_WARNING, "%s", strerror(errno));
    RETURN_FALSE;
  }

  RETURN_TRUE;
}

参数

  • checktarget -链接的目标。
  • checklink -链接的名称。

返回值

  • checkbool - 成功时返回 true,失败时返回 false。

示例1: - 使用 symlink() 函数创建符号链接。

<?php
/**
 * PHP symlink() 函数创建符号链接
 *
 * @since Version 1.0.0
 * @filesource
 */

// 目标文件
$target = "foo.txt";
// 新链接名称
$link = "foo.lnk";

// 创建链接
symlink($target, $link);