PHP | linkinfo 函数

Lasted 2021-01-19 11:01:01

link 函数获取一个链接的信息。

本函数用来验证一个链接(由 path 所指向的)是否确实存在(使用 stat.h 中的 S_ISLNK 宏同样的方法)。

函数定义

linkinfo ( string $path ) : int
// 源文件位于:ext/standard/link.c
# 函数定义

PHP_FUNCTION(linkinfo)
{
  ...
  dirname = estrndup(link, link_len);
  php_dirname(dirname, link_len);

  if (php_check_open_basedir(dirname)) {
    efree(dirname);
    RETURN_FALSE;
  }

  ret = VCWD_LSTAT(link, &sb);
  if (ret == -1) {
    php_error_docref(NULL, E_WARNING, "%s", strerror(errno));
    efree(dirname);
    RETURN_LONG(Z_L(-1));
  }

  efree(dirname);
  RETURN_LONG((zend_long) sb.st_dev);
}

参数

  • checkpath - 链接的路径。

返回值

  • checkint - linkinfo() 返回 lstat 系统调用所返回的 UNIX C stat 结构中的 st_dev 字段。 如果出错则返回 0 或 false。

示例1: - 使用 linkinfo() 函数获取一个链接的信息。

<?php
/**
 * PHP linkinfo() 函数获取一个链接的信息。
 *
 * @since Version 1.0.0
 * @filesource
 */

$target = "foo.txt";
$path = "foo.lnk";

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

// 显示链接信息
echo linkinfo($path);
2064