reg_expand_sz-값은 변수 길이 문자열 로 저장됩니다
Windows 레지스트리의 구조는 무엇입니까? 비 창 시스템에서 PHP에서 Windows 레지스트리에 액세스 할 수 있습니까? 비 창 시스템의 PHP의 레지스트리. Windows Registry는 Windows 운영 체제와 관련된 기능입니다. PHP의 COM 클래스는 PHP가 상호 작용할 수있는 내장 클래스입니다. com 객체. Com (Component Object Model)은 Microsoft가 도입 한 소프트웨어 구성 요소의 이진 인터페이스 표준입니다. PHP는 Windows 레지스트리를 포함하여 모든 COM 객체와 상호 작용할 수 있습니다.
이 키는 모니터 해상도 및 스피커 설정과 같은 컴퓨터의 하드웨어에 대한 정보를 저장합니다. 이 키가 HKCC로 약칭 될 수 있습니다.
이 키에는 프린터, 소프트웨어 및 네트워킹 정보와 같은 기계에 대한 구성 정보가 포함되어 있습니다. 키가 먼저로드 된 다음 사용자의 프로필에서 항목이 다양한 값을 무시합니다. 이 키가 HKLM으로 약칭되는 것을 볼 수 있습니다.
이 키는 파일 연결 및 MIME 유형에 대한 정보를 저장하는 HKEY_LOCAL_MACHINESOFTWARE를 가리키는 별칭입니다. 약어는 HKCR입니다.
이제 우리는 플레이 할 장소가 있었으므로 Win32Std가 레지스트리 항목을 조작하기 위해 제공하는 기능을 소개 할 수 있습니다.
연결이 열려 있으므로 Reg_enum_key (), reg_enum_value () 및 reg_get_value () 함수를 사용하여 레지스트리에서 정보를 검색 할 수 있습니다.
리소스 만 reg_enum_key ()로 전달되면 현재 키에 따라 하위 키 배열을 반환합니다. 정수 값을 전달하여 특정 인덱스에서 서브 키를 검색 할 수도 있습니다.
reg_enum_key ()가 키를 반환 할 때 reg_enum_value ()는 키 값을 반환합니다. 이 함수는 리소스와 선택적 인덱스를 허용합니다. 값 이름은 reg_get_value ()로 전달되어 값의 값을 검색 할 수 있습니다 (입이 아닙니다!).
<span><span><?php
</span></span><span><span>$keyConst = HKEY_CURRENT_USER;
</span></span><span>
</span><span><span>// backslash is used as an escape so it must be escaped itself
</span></span><span><span>$key = "Software\Intel";
</span></span><span>
</span><span><span>// open the registry key HKCUSoftwareIntel
</span></span><span><span>if (!($reg = @reg_open_key($keyConst, $key))) {
</span></span><span> <span>throw new Exception("Cannot access registry.");
</span></span><span><span>}
</span></span><span><span>...
</span></span><span>
</span><span><span>reg_close_key($reg);</span></span>
<span><span><?php
</span></span><span><span>// retrieve an array of values under a given key
</span></span><span><span>$values = reg_enum_value($reg);
</span></span><span><span>foreach ($values as $index => $value) {
</span></span><span> <span>echo "The value at " . $index . " is " . $value . " and stores ";
</span></span><span> <span>echo reg_get_value($reg, $value) . "n";
</span></span><span><span>}
</span></span><span>
</span><span><span>// retrieve a specific value given the index
</span></span><span><span>$index = 1;
</span></span><span><span>$value = reg_enum_value($reg, $index);
</span></span><span><span>echo "The value at " . $index . " is " . $value . " and stores ";
</span></span><span><span>echo reg_get_value($reg, $value) . "n";</span></span>
로 저장됩니다
<span><span><?php
</span></span><span><span>$keyConst = HKEY_CURRENT_USER;
</span></span><span>
</span><span><span>// backslash is used as an escape so it must be escaped itself
</span></span><span><span>$key = "Software\Intel";
</span></span><span>
</span><span><span>// open the registry key HKCUSoftwareIntel
</span></span><span><span>if (!($reg = @reg_open_key($keyConst, $key))) {
</span></span><span> <span>throw new Exception("Cannot access registry.");
</span></span><span><span>}
</span></span><span><span>...
</span></span><span>
</span><span><span>reg_close_key($reg);</span></span>
Windows는 HKEY_LOCAL_MACHINESYSTEMCURRENTCONTROLSETSERVICES의 다양한 하위 키에 USB 장치의 존재를 기록합니다. 내 썸 드라이브와 같은 스토리지 미디어는 Usbstor 아래에 나타납니다. 다른 장치는 Usbaudio, Usbccgp 및 Usbehci에 나타날 수 있습니다. 또한 HKEY_LOCAL_MACHINE은 권한있는 계정 만 접근 할 수 있습니다.
이제 장치 인스턴스에 대한 키의 열거 하위 키를 간단히 검색 할 수 있습니다. 드라이브가 첨부되면 등록되며 첨부되지 않으면 나열되지 않습니다.
<span><span><?php
</span></span><span><span>$keyConst = HKEY_CURRENT_USER;
</span></span><span>
</span><span><span>// backslash is used as an escape so it must be escaped itself
</span></span><span><span>$key = "Software\Intel";
</span></span><span>
</span><span><span>// open the registry key HKCUSoftwareIntel
</span></span><span><span>if (!($reg = @reg_open_key($keyConst, $key))) {
</span></span><span> <span>throw new Exception("Cannot access registry.");
</span></span><span><span>}
</span></span><span><span>...
</span></span><span>
</span><span><span>reg_close_key($reg);</span></span>
이 기사에서 우리는 Windows 레지스트리의 내용과 그 정보를 찾을 수있는 정보의 작은 샘플을 보았습니다. 자신의 구성 데이터를 작성하거나 Win32Std 확장자가 제공하는 기능을 사용하여 정보를 읽을 수 있습니다.
그건 그렇고, Win32Std 확장자는 레지스트리에 대한 액세스 이상을 제공합니다. 관심이 있으시면 Wildphp.free.fr/wiki/doku.php?id=win32std:index를 확인하여 다른 것이 무엇인지 확인하십시오.
Fotolia를 통한 이미지
Windows 레지스트리는 데이터베이스입니다. 이는 운영 체제 및 레지스트리를 사용하기로 선택한 응용 프로그램에 대해 낮은 수준의 설정을 저장합니다. 시스템 정보를 검색하거나 특정 소프트웨어가 있는지 확인하거나 시스템 설정을 수정하는 등 다양한 이유로 PHP에서 액세스해야 할 수도 있습니다. 그러나 시스템 작동에 영향을 줄 수 있으므로 레지스트리를 수정해야합니다. PHP에서 Windows 레지스트리에 쓸 수 있습니까? COM 클래스의 regwrite 메소드를 사용하는 PHP. 그러나 잘못된 수정으로 인해 운영 체제를 다시 설치 해야하는 심각한 문제가 발생할 수 있으므로 이는 매우주의를 기울여야합니다.
PHP의 Windows 레지스트리에 액세스하려면 관리 권한이 있어야합니다. 레지스트리에 중요한 시스템 및 응용 프로그램 설정이 포함되어 있기 때문입니다. 웹 서버에서 스크립트를 실행하는 경우 서버의 사용자 계정에 필요한 권한도 있어야합니다. Windows 레지스트리는 다음과 같습니다. 열쇠와 값을 가진 나무로 계층 적으로 조직되었습니다. 키는 폴더와 유사하며 값은 키 내의 데이터 항목입니다. 각 키에는 하위 키가 포함될 수 있으며 각 하위 키에는 트리 구조를 형성하는 추가 하위 키가 포함될 수 있습니다.
PHP에서 Windows 레지스트리에 액세스 할 때 오류를 처리 할 수있는 방법은 무엇입니까? PHP, 표준 PHP 오류 처리 기능을 사용하여 오류를 처리 할 수 있습니다. 예를 들어, set_error_handler 함수를 사용하여 사용자 정의 오류 핸들러를 정의 할 수 있습니다. PHP의 COM 클래스 란 무엇입니까?
Windows 레지스트리 수정 위험은 위험을 수정합니다. 잘못된 수정으로 인해 운영 체제를 다시 설치 해야하는 심각한 문제가 발생할 수 있습니다. 따라서 변경하기 전에 레지스트리를 백업하고 현재하고있는 일에 대해 확신이있는 경우에만 변경하는 것이 좋습니다.
위 내용은 PHP 마스터 | PHP로 Windows 레지스트리에 액세스하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!