私の目的は、レジストリ ハイブで Company のキー値を探し、それに続く対応する Guid とその他のキーと値を取得することです。そこで、regedit export コマンドを実行してから、必要なキーを求めてファイルを php で解析することにしました。
したがって、 dos batch コマンドを実行した後
>regedit /E "output.txt" "HKLM\System....\Company1"
出力テキストファイルは、正規表現に適していないある種の UNICODE 形式のようです。ファイルを解析してキーを取得するためにphpを使用しています。
ファイルの解析に使用しているphpコードは次のとおりです
<?php
$regfile = "output.txt";
$handle = fopen ("c:\\\\" . $regfile,"r");
//echo "handle: " . $file . "<br>";
$row = 1;
while ((($data = fgets($handle, 1024)) !== FALSE) ) {
$num = count($data);
echo "$num fields in line $row: \n";
$reg_section = $data;
//$reg_section = "[HKEY_LOCAL_MACHINE\SOFTWARE\TECHNOLOGIES\MEDIUS\CONFIG MANAGER\SYSTEM\COMPANIES\RECORD11]";
$pattern = "/^(\[HKEY_LOCAL_MACHINE\\\SOFTWARE\\\TECHNOLOGIES\\\MEDIUS\\\CONFIG MANAGER\\\SYSTEM\\\COMPANIES\\\RECORD(\d+)\])$/";
if ( preg_match($pattern, $reg_section )) {
echo "<font color=red>Found</font><br>";
} else {
echo "not found<br>";
echo $data . "<br>";
}
$row++;
} //end while
fclose($handle);
?>
出力は次のようになります....
行 1 の 1 フィールド: 見つかりませんr� �V�e�r�s�i�o�n� �5�.�0�0� � 行 2 の 1 フィールド: 見つかりません
行 3 の 1 フィールド: 見つかりません [�H�K�E�Y�<em>�L�O�C�A�L�</em>�M�A�C�H�I�N�E �\�S�O�F�T�W�A�R�E�\�I�N�T�E�R�S�T�A�R� �T�E�C�H�N� O�L�O�G�I�E�S�\�X�M�E�D�I�U�S�\�C�O�N�F�I�G��M�A�N �A�G�E�R�\�S�Y�S�T�E�M�\�C�O�M�P�A�N�I�E�S�]� � 1 フィールドが並んでいます4: 見つかりません "�N�e�x�t� �R�e�c�o�r�d� �I�D�"�=�"�4�1�"� � 5 行目に 1 フィールド: 見つかりません
これにアプローチする方法はありますか?
前もって感謝します