国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
鑰匙要點
註冊表佈局
製作沙盒
從註冊表中讀取
寫入註冊表
一個例子 - USB驅(qū)動加密狗
總結(jié)
>
>我可以從php中寫入Windows註冊表嗎?使用COM類的regwrite方法的PHP。但是,這應該非常謹慎,因為錯誤的修改可能會導致嚴重的問題,這可能需要您重新安裝操作系統(tǒng)。

>我需要獲得哪些權(quán)限,可以從PHP?

不,您無法訪問Windows Windows來自PHP的註冊表在非窗口系統(tǒng)上。 Windows註冊表是Windows操作系統(tǒng)的特定功能。
首頁 後端開發(fā) php教程 PHP主|使用PHP訪問Windows註冊表

PHP主|使用PHP訪問Windows註冊表

Feb 25, 2025 am 10:09 AM

PHP主|使用PHP訪問Windows註冊表

鑰匙要點

  • > Windows註冊表是一個層次結(jié)構(gòu)化的數(shù)據(jù)庫存儲配置信息,可以使用php使用win32STD擴展程序訪問,可以從downlocts.php.net/pierre/。
  • Windows註冊表分為五個主要組,稱為密鑰:hkey_current_config,hkey_local_machine,hkey_users,hkey_classes_root和hkey_current_user。每個鍵都包含子鍵,依次包含其他子鑰匙,配置值或兩者。
  • >
  • > reg_open_key()函數(shù)打開與註冊表的連接並返回資源,該資源可與其他註冊表函數(shù)一起使用以在該連接上行動。 reg_close_key()函數(shù)關閉連接。 REG_SET_VALUE()函數(shù)用於為註冊表編寫一個值,覆蓋現(xiàn)有值或創(chuàng)建新值。 >
  • > Windows註冊表可用於實用應用程序,例如為基於Web的應用程序存儲配置信息,存儲應用程序數(shù)據(jù)和桌面應用程序的用戶偏好,或驗證USB加密狗等硬件設備的存在。但是,應謹慎修改註冊表,因為它可能會影響系統(tǒng)的操作。
您是否曾經(jīng)早上醒來,想著自己,“我今天想做瘋狂的事情?”好吧,如果今天是這些早晨之一,那麼您很幸運。我想為您提供一些使用PHP訪問Windows註冊表的介紹。 PHP…註冊表……瘋狂! Windows註冊表只是一個層次結(jié)構(gòu)化的數(shù)據(jù)庫,其中Windows操作系統(tǒng)和其他應用程序存儲了重要的配置信息。 各種數(shù)據(jù)存儲在註冊表中:用戶配置文件,文件類型關聯(lián),硬件信息,序列號等。借助WIN32STD擴展程序中的功能,您的基於Windows的PHP應用程序也可以訪問註冊表。 Win32STD擴展可以從downloads.php.net/pierre/下載為預編譯庫。只需將其放入PHP的Ext文件夾中,更新您的php.ini文件,然後在必要時重新啟動Apache。請注意,目前您要下載的DLL為32位,因此,如果您使用的是64位的Wampserver構(gòu)建,或者您將不會取得太大的成功。您必須將Wampserver降級到32位構(gòu)建,或者自己嘗試自行編譯圖書館。

註冊表佈局

註冊表在Windows操作系統(tǒng)中享有黑暗,危險和可怕的位置的聲譽。 這可能是一種過於誇張的恐懼,但我仍然會重申Microsoft的註冊表咒語:“在修改註冊表之前,請將其備份並確保您了解如果發(fā)生問題時如何恢復它。 不當變化可能會導致嚴重的問題,可能需要您重新安裝操作系統(tǒng)?!? 那麼這個黑暗,可怕的地方是什麼樣的? Windows註冊表分為5個主要組,稱為密鑰: hkey_current_config
該密鑰存儲有關計算機硬件的信息,例如監(jiān)視器分辨率和揚聲器設置。 您可能會將此鍵縮寫為HKCC。 > hkey_local_machine
該密鑰包含用於機器的配置信息,例如打印機,軟件和網(wǎng)絡信息。 首先加載鍵,然後從用戶配置文件中的條目覆蓋各種值。 您會看到此密鑰縮寫為HKLM。 hkey_users
該鍵保留機器上本地用戶帳戶的所有配置文件。 此處存儲了諸如用戶屏幕保護程序選擇,主題信息和其他首選項之類的內(nèi)容。 該鍵縮寫為HKU。 > HKEY_CLASSES_ROOT
此鍵是指向HKEY_LOCAL_MACHINESOFTWARE的別名,該軟件存儲有關文件關聯(lián)和MIME類型的信息。 縮寫為hkcr。 > hkey_current_user
此鍵是指向當前登錄的用戶中的HKEY_USERS中的配置文件的別名。 您會看到此密鑰縮寫為HKCU。 每個鍵都包含子鍵,又包含其他子鍵,配置值或兩者。 在HKEY_CURRENT_USER下工作足以使用一些CLI腳本和一個沙盒。僅使用HKEY_LOCAL_MACHINE用於系統(tǒng)範圍的應用程序數(shù)據(jù)和您可以使用Microsoft安全權(quán)限的情況。了解適合您的情況的是什麼,在哪個帳戶運行下知道,並適當?shù)貏?chuàng)建密鑰。

製作沙盒

我建議為了安全起見,請設置一個特殊的密鑰,以便在腳本中使用,尤其是在開發(fā)時。錯誤是人類,我們不想意外覆蓋任何重要的事情。 組織是設置指定密鑰的另一個原因。 註冊表中存儲了很多信息,我們希望能夠輕鬆地找到自己的價值觀。 註冊表編輯器是一種用於查看和編輯註冊表的Microsoft程序。要創(chuàng)建我們的沙箱,請開始,在搜索欄中鍵入“ regedit”,然後在顯示的結(jié)果列表中選擇regedit.exe。 左窗格顯示現(xiàn)有鍵的樹結(jié)構(gòu),而右窗格顯示存儲在其中的值。 展開HKEY_CURRENT_USER節(jié)點,右鍵單擊軟件鍵,然後從彈出式上下文菜單中選擇新>鍵。 另外,我們還可以使用箭頭鍵在樹上穿越,以便突出顯示軟件密鑰並從“編輯”菜單中選擇新>鍵。提供鍵的名稱,然後按Enter。

PHP主|使用PHP訪問Windows註冊表

現(xiàn)在,我們可以玩一個地方,請允許我向您介紹Win32STD為操縱註冊表條目提供的功能。

從註冊表中讀取

reg_open_key()函數(shù)打開與註冊表的連接並返回資源。 然後將此資源與其他註冊表功能一起使用,以對該連接作用。 reg_close_key()函數(shù)關閉連接。 reg_open_key()採用兩個參數(shù):第一個預定義常數(shù)代表五個主要註冊表組之一,然後代表所需密鑰的剩餘路徑。
<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>
現(xiàn)在您有了一個開放的連接,可以使用reg_enum_key(),reg_enum_value()和reg_get_value()函數(shù)從註冊表中檢索信息。 如果僅將資源傳遞給reg_enum_key(),則它將在當前密鑰下返回一組子鍵。 也可以傳遞整數(shù)值以檢索特定索引的子鑰匙。
<span><span><?php
</span></span><span><span>// retrieve an array of subkeys under the current key
</span></span><span><span>$subkeys = reg_enum_key($reg);
</span></span><span><span>foreach ($subkeys as $index => $subkey) {
</span></span><span>    <span>echo "The subkey at " . $index . " is " . $subkey . "n";
</span></span><span><span>}
</span></span><span>
</span><span><span>// retrieve a specific subkey
</span></span><span><span>$index = 2;
</span></span><span><span>$subkey = reg_enum_key($reg, $index);
</span></span><span><span>echo "The subkey at " . $index . " is " . $subkey . "n";</span></span>
由於reg_enum_key()返回鍵,reg_enum_value()返回鍵的值。 該功能接受資源和可選索引。值名可以傳遞到reg_get_value()以檢索值的值(不是很嘴?。?。
<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>

寫入註冊表

> 在閱讀和寫入註冊表時,您可以選擇少數(shù)數(shù)據(jù)類型。由於PHP的動態(tài)性質(zhì),它們通常不會產(chǎn)生任何後果,但是在編寫值時,您必須指定類型。在大多數(shù)情況下,您會發(fā)現(xiàn)自己使用reg_sz或reg_dword,但以下是擴展程序公開的數(shù)據(jù)類型的列表:
  • reg_dword - 值存儲為32位長整數(shù)
  • reg_sz - 值存儲為固定長度字符串
  • reg_expand_sz - 值存儲為可變長度字符串
  • reg_multi_sz - 值是由space或comma
  • 等定界線分隔的項目列表
  • reg_binary - 值是二進製字符串
  • reg_none - 值沒有與之關聯(lián)的特定數(shù)據(jù)類型
reg_set_value()函數(shù)用於為註冊表編寫一個值。如果該值已經(jīng)存在,則新值將覆蓋它,但是如果不存在,則將創(chuàng)建它。 該函數(shù)採用四個參數(shù):首先是開放資源,然後是值的名稱,然後是代表值數(shù)據(jù)類型的預定義常數(shù),最後是數(shù)據(jù)本身。
<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>

一個例子 - USB驅(qū)動加密狗

您可能想知道是否有實際用途用於使用註冊表。在基於Web的應用程序中,您可以將配置信息存儲在註冊表中。如果您寫了一個桌面應用程序,那麼註冊表可能是將各種信息從應用程序數(shù)據(jù)到用戶偏好存儲的好地方。 Windows本身將各種有趣的硬件和狀態(tài)相關的信息寫入註冊表,如果您足夠創(chuàng)造力,則其中一些可能會很有用。 假設我們的PHP應用程序已獲得許可,以至於需要將USB加密狗連接到服務器上才能運行它。 PHP如何檢測加密狗的存在? Windows上的答案在於註冊表!每個設備都有一個唯一的標識符,因此腳本可以在啟動時搜索標識符的適當鍵,以確定是否插入了加密狗。 第一步是確定設備的標識符。在此示例中,我將使用商品拇指。只需將驅(qū)動器插入計算機上的USB端口,然後開始啟動,在搜索欄中鍵入“設備”,然後在顯示的結(jié)果列表中選擇“設備管理器”。 在設備管理器中找到設備,右鍵單擊條目,然後從上下文菜單中選擇屬性。然後轉(zhuǎn)到“屬性”窗口的詳細信息選項卡,然後從下拉列表中選擇“設備實例路徑”。值末端的十六進制數(shù)的序列是設備ID(以紅色標記)。

PHP主|使用PHP訪問Windows註冊表

Windows記錄了HKEY_LOCAL_MACHINESYSYSTEMCURRENTCONTROLSESERSERSERSERSERSERSERICES的USB設備的存在。像我的ThumbDrive這樣的存儲媒體將出現(xiàn)在Usbstor下;其他設備可能會出現(xiàn)在Usbaudio,USBCCGP和USBEHCI下。另外,請注意,HKEY_LOCAL_MACHINE只能獲得特權(quán)帳戶。 因此,現(xiàn)在我們可以簡單地搜索密鑰的枚舉子鍵以查看設備實例。連接驅(qū)動器時,它將被列出,當不附加時,它將不會列出。
<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>
這項簡單的檢查還開闢了其他一些有趣的可能性。您可以輕鬆地編碼一個敏感的管理接口,該接口驗證加密狗的驗證,並通過檢查$ _SERVER [“ remote_addr”]從服務器本身發(fā)送請求。此設置將要求用戶在指定的服務器>和上提供物理身份驗證的形式。

總結(jié)

在本文的整個課程中,我們已經(jīng)看到了Windows註冊表的內(nèi)容,以及在其中可以找到哪些信息的一小部分。您可以編寫自己的配置數(shù)據(jù),也可以使用Win32STD擴展程序提供的功能來讀取信息。 順便說一句,Win32STD擴展不僅提供了對註冊表的訪問。如果您有興趣,請查看wildphp.free.fr/wiki/doku.php?id=win32std:index,以查看其提供的內(nèi)容。 通過fotolia 圖像 經(jīng)常詢問的問題(常見問題解答)有關從php

訪問Windows註冊表的問題

>如何通過在PHP中使用COM類從PHP訪問Windows註冊表?該類允許PHP與包??括Windows註冊表在內(nèi)的任何COM對象進行交互。您可以創(chuàng)建COM類的新實例,然後使用Regread方法從註冊表中讀取值。但是,請注意,此方法需要正確的權(quán)限來訪問註冊表。

>

Windows註冊表是什麼,為什麼我需要從php?

> Windows Registry訪問它。這為操作系統(tǒng)和選擇使用註冊表的應用程序存儲了低級設置。由於各種原因,您可能需要從PHP訪問它,例如檢索系統(tǒng)信息,檢查某些軟件的存在或修改系統(tǒng)設置。但是,應謹慎修改註冊表,因為它可能會影響系統(tǒng)的操作。

>

>我可以從php中寫入Windows註冊表嗎?使用COM類的regwrite方法的PHP。但是,這應該非常謹慎,因為錯誤的修改可能會導致嚴重的問題,這可能需要您重新安裝操作系統(tǒng)。

>我需要獲得哪些權(quán)限,可以從PHP?

中訪問Windows註冊表來從PHP訪問Windows註冊表,您需要擁有管理特權(quán)。這是因為註冊表包含關鍵系統(tǒng)和應用程序設置。如果您正在從Web服務器運行腳本,則服務器的用戶帳戶也需要具有必要的權(quán)限。

>

> Windows註冊表的結(jié)構(gòu)是什麼?用鑰匙和值以樹為單位組織。鍵類似於文件夾,值是鍵中的數(shù)據(jù)輸入。每個鍵都可以包含子鑰匙,每個鍵都可以包含更多的子鍵,形成樹結(jié)構(gòu)。

>在從PHP訪問Windows註冊表時,我如何處理錯誤? PHP,可以使用標準PHP錯誤處理功能來處理錯誤。例如,您可以使用SET_ERROR_HANDLER函數(shù)來定義自定義錯誤處理程序。

我可以從非windows System上的PHP訪問Windows註冊表嗎?

不,您無法訪問Windows Windows來自PHP的註冊表在非窗口系統(tǒng)上。 Windows註冊表是Windows操作系統(tǒng)的特定功能。

> php中的com類是什麼? com對象。 COM(組件對像模型)是Microsoft引入的軟件組件的二進制界面標準。它允許PHP與任何COM對象進行交互,包括Windows註冊表。

可以使用php?

>是的,您可以使用php從Windows註冊表中刪除鍵,從Windows註冊表中刪除鍵。 。這可以使用COM類的regdelete方法完成。但是,這應該非常謹慎,因為刪除錯誤的鑰匙可能會導致嚴重的問題。

>修改Windows註冊表的風險是什麼?

修改Windows註冊表會帶來風險。錯誤的修改可能會導致嚴重的問題,這可能需要您重新安裝操作系統(tǒng)。因此,建議在進行任何更改之前備份註冊表,並且只有在您對自己的工作充滿信心的情況下進行更改。

以上是PHP主|使用PHP訪問Windows註冊表的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在PHP中實施身份驗證和授權(quán)? 如何在PHP中實施身份驗證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

要安全處理PHP中的文件上傳,核心在於驗證文件類型、重命名文件並限制權(quán)限。 1.使用finfo_file()檢查真實MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機文件名,存儲至非Web根目錄;3.通過php.ini和HTML表單限製文件大小,設置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強安全性。這些步驟有效防止安全漏洞,確保文件上傳過程安全可靠。

PHP中==(鬆散比較)和===(嚴格的比較)之間有什麼區(qū)別? PHP中==(鬆散比較)和===(嚴格的比較)之間有什麼區(qū)別? Jun 19, 2025 am 01:07 AM

在PHP中,==與===的主要區(qū)別在於類型檢查的嚴格程度。 ==在比較前會進行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會返回true,例如5==="5"返回false。使用場景上,===更安全應優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時使用。

如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

PHP中使用基本數(shù)學運算的方法如下:1.加法用 號,支持整數(shù)和浮點數(shù),也可用於變量,字符串數(shù)字會自動轉(zhuǎn)換但不推薦依賴;2.減法用-號,變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號,適用於數(shù)字及類似字符串;4.除法用/號,需避免除以零,並註意結(jié)果可能是浮點數(shù);5.取模用%號,可用於判斷奇偶數(shù),處理負數(shù)時餘數(shù)符號與被除數(shù)一致。正確使用這些運算符的關鍵在於確保數(shù)據(jù)類型清晰並處理好邊界情況。

如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(例如MongoDB,Redis)進行交互? Jun 19, 2025 am 01:07 AM

是的,PHP可以通過特定擴展或庫與MongoDB和Redis等NoSQL數(shù)據(jù)庫交互。首先,使用MongoDBPHP驅(qū)動(通過PECL或Composer安裝)創(chuàng)建客戶端實例並操作數(shù)據(jù)庫及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫或phpredis擴展連接Redis,執(zhí)行鍵值設置與獲取,推薦phpredis用於高性能場景,Predis則便於快速部署;兩者均適用於生產(chǎn)環(huán)境且文檔完善。

我如何了解最新的PHP開發(fā)和最佳實踐? 我如何了解最新的PHP開發(fā)和最佳實踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

什麼是PHP,為什麼它用於Web開發(fā)? 什麼是PHP,為什麼它用於Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

如何設置PHP時區(qū)? 如何設置PHP時區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

See all articles