Мне нужно экспортировать некоторые данные из веб-приложения в файлы 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 редактор реестра открывается, как и ожидалось, и спрашивает о добавлении информации [...] Вы уверены ?. После нажатия «Да» я получаю следующее сообщение об ошибке
Невозможно импортировать [файл]: указанный файл не является сценарием реестра. Вы
можно импортировать только двоичные файлы реестра из редактора реестра.
Мой файл выглядит так
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>
Я не совсем уверен, как вывести файл в двоичном формате, совместимом с редактором реестра.
В соответствии с приложением «Установить ассоциации» в Windows 7 типом содержимого файлов реестра являются «Регистрационные записи», но я попытался установить для этого типа содержимого в сценарии, но он не распознается.