wp_tempnam

函数
wp_tempnam ( $filename = '', $dir = '' )
参数
  • (string) $filename Optional. Filename to base the Unique file off. Default empty.
    Required:
    Default: (empty)
  • (string) $dir Optional. Directory to store the file in. Default empty.
    Required:
    Default: (empty)
返回值
  • (string) A writable filename.
定义位置
相关方法
wp_basenamewp_is_streamwp_metawp_mailwp_head
引入
2.6.0
弃用
-

wp_tempnam是一个函数,在服务器的临时目录中生成一个唯一的临时文件名。它被WordPress用来在执行某些操作时创建临时文件,例如上传文件。

返回一个临时唯一文件的文件名。

请注意,调用函数自己必须unlink()。

文件名基于传递的参数,或者默认为当前unix的时间戳,而目录也可以传递,或者通过留空,默认为一个可写的临时目录。

function wp_tempnam( $filename = '', $dir = '' ) {
	if ( empty( $dir ) ) {
		$dir = get_temp_dir();
	}

	if ( empty( $filename ) || in_array( $filename, array( '.', '/', '\' ), true ) ) {
		$filename = uniqid();
	}

	// Use the basename of the given file without the extension as the name for the temporary directory.
	$temp_filename = basename( $filename );
	$temp_filename = preg_replace( '|.[^.]*$|', '', $temp_filename );

	// If the folder is falsey, use its parent directory name instead.
	if ( ! $temp_filename ) {
		return wp_tempnam( dirname( $filename ), $dir );
	}

	// Suffix some random data to avoid filename conflicts.
	$temp_filename .= '-' . wp_generate_password( 6, false );
	$temp_filename .= '.tmp';
	$temp_filename  = $dir . wp_unique_filename( $dir, $temp_filename );

	$fp = @fopen( $temp_filename, 'x' );

	if ( ! $fp && is_writable( $dir ) && file_exists( $temp_filename ) ) {
		return wp_tempnam( $filename, $dir );
	}

	if ( $fp ) {
		fclose( $fp );
	}

	return $temp_filename;
}

常见问题

FAQs
查看更多 >