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
檢視更多 >