Создание .reg файлов - PullRequest
       6

Создание .reg файлов

0 голосов
/ 25 ноября 2011

Мне нужно экспортировать некоторые данные из веб-приложения в файлы 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 типом содержимого файлов реестра являются «Регистрационные записи», но я попытался установить для этого типа содержимого в сценарии, но он не распознается.

1 Ответ

1 голос
/ 25 ноября 2011

Я не совсем уверен, как вывести файл в двоичном формате, совместимом с редактором реестра.

Я думаю, что это является причиной вашей проблемы. Вам нужно создать файл на основе его спецификации формата файла. MIME-тип здесь менее важен, Windows больше работает с окончаниями файлов (.reg), чем MIME-типы. Вам просто нужно позаботиться о том, чтобы вы использовали правильный тип MIME с вашим форматом файла. Для этого вам также необходимо знать формат файла.

На какую конкретную спецификацию формата файла вы ссылаетесь? Вы уверены, что хотите создать двоичный файл .reg, а не текстовый?

...