PHP | symlink 函數

怎樣創建符號鏈接

最近更新時間 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);
rss_feed