创建.reg文件

时间:2011-11-25 09:49:27

标签: php registry mime-types

我需要将一些数据从Web应用程序导出到Windows .reg文件

我已设法创建该文件并强制下载。

$tmpfname = tempnam( sys_get_temp_dir(), "reg_".time().rand()."_" );
$tmpfpath = sys_get_temp_dir() . $tmpfpath;
$handle   = fopen( $tmpfname, "w" );

fwrite( $handle, $string );

header( 'Content-type: application/force-download' );
header( 'Content-Disposition: attachment; filename="'.time().'_import-'.$reg_folder.'.reg"' );
header( 'Content-Transfer-Encoding: binary' );
readfile( $tmpfpath );

fclose( $temp );
unlink( $tmpfpath );

问题是,一旦我运行下载的.reg文件,注册表编辑器就会按预期打开并询问有关添加信息[...]您确定吗?单击是后,我收到以下错误消息

  

无法导入[file]:指定的文件不是注册表脚本。您   只能从注册表编辑器中导入二进制注册表文件。

我的文件看起来像这样

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions\Test Site]

"HostName"="hostname"
"UserName"="username"
"PasswordPlan"="password"
<newline>
<newline>

我不完全确定如何以与注册表编辑器兼容的二进制格式输出文件。

注册表文件的内容类型是&#34;注册条目&#34;根据Windows 7的“设置关联”应用程序,但我已尝试在脚本中将内容类型设置为此,但无法识别。

如果有人能够对此有所了解,那将非常感激。感谢

1 个答案:

答案 0 :(得分:1)

  

我不完全确定如何以与注册表编辑器兼容的二进制格式输出文件。

我认为这是导致问题的原因。您需要根据文件格式规范创建文件。 mime类型在这里不太重要,windows对文件结尾(.reg)的作用比mime-types更多。您只需要注意使用正确的mime-type和文件格式。为此,您还需要了解文件格式。

您指的是哪种特定的文件格式规范?您确定要创建二进制.reg文件而不是文本文件吗?