久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP實現更改hosts文件的方法示例

這篇文章主要介紹了PHP實現更改hosts文件的方法,結合具體實例形式分析了php操作hosts文件的相關讀取、設置、刪除等實現技巧,需要的朋友可以參考下

本文實例講述了PHP實現更改hosts文件的方法。分享給大家供大家參考,具體如下:

有這樣一個需求,我有多個網址希望在不同的時候對應不同的 ip,如果一個個配 hosts,這工作顯得有些繁瑣。寫了如下腳本來批量更改。

<?php
define('HOST_FILE', 'C:\Windows\System32\drivers\etc\hosts');
$hm = new HostManage(HOST_FILE);
$env = $argv[1];
if (empty($env)) {
    $hm->delAllGroup();
} else {
    $hm->addGroup($env);
}
class HostManage {
    // hosts 文件路徑
    protected $file;
    // hosts 記錄數組
    protected $hosts = array();
    // 配置文件路徑,默認為 __FILE__ . '.ini';
    protected $configFile;
    // 從 ini 配置文件讀取出來的配置數組
    protected $config = array();
    // 配置文件里面需要配置的域名
    protected $domain = array();
    // 配置文件獲取的 ip 數據
    protected $ip = array();
    public function __construct($file, $config_file = null) {
        $this->file = $file;
        if ($config_file) {
          $this->configFile = $config_file;
        } else {
          $this->configFile = __FILE__ . '.ini';
        }
        $this->initHosts()
            ->initCfg();
    }
    public function __destruct() {
        $this->write();
    }
    public function initHosts() {
        $lines = file($this->file);
        foreach ($lines as $line) {
            $line = trim($line);
            if (empty($line) || $line[0] == '#') {
                continue;
            }
            $item = preg_split('/\s+/', $line);
            $this->hosts[$item[1]] = $item[0];
        }
        return $this;
    }
    public function initCfg() {
        if (! file_exists($this->configFile)) {
            $this->config = array();
        } else {
            $this->config = (parse_ini_file($this->configFile, true));
        }
        $this->domain = array_keys($this->config['domain']);
        $this->ip = $this->config['ip'];
        return $this;
    }
    /**
     * 刪除配置文件里域的 hosts
     */
    public function delAllGroup() {
        foreach ($this->domain as $domain) {
            $this->delRecord($domain);
        }
    }
    /**
     * 將域配置為指定 ip
     * @param type $env
     * @return \HostManage
     */
    public function addGroup($env) {
        if (! isset($this->ip[$env])) {
            return $this;
        }
        foreach ($this->domain as $domain) {
            $this->addRecord($domain, $this->ip[$env]);
        }
        return $this;
    }
    /**
     * 添加一條 host 記錄
     * @param type $ip
     * @param type $domain
     */
    function addRecord($domain, $ip) {
        $this->hosts[$domain] = $ip;
        return $this;
    }
    /**
     * 刪除一條 host 記錄
     * @param type $domain
     */
    function delRecord($domain) {
        unset($this->hosts[$domain]);
        return $this;
    }
    /**
     * 寫入 host 文件
     */
    public function write() {
        $str = '';
        foreach ($this->hosts as $domain => $ip) {
            $str .= $ip . "\t" . $domain . PHP_EOL;
        }
        file_put_contents($this->file, $str);
        return $this;
    }
}

示例配置文件如下:

# 域名
[domain]
a.example.com=1 # 請無視這個 =1,因為使用了 parse_ini_file 這個函數來解析,如果后面不帶值,就獲取不到這條記錄了
b.example.com=1
c.example.com=1
# ip 記錄
[ip]
local=127.0.0.1
dev=192.168.1.100

使用方法:

php hosts.php local # 域名將指向本機 127.0.0.1
php hosts.php dev # 域名將指向開發機 192.168.1.100
php hosts.php # 刪除域名的 hosts 配置

寫完后,發現,這明明就是只需要一次查找替換就能完成的工作嘛

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php文件操作總結》、《PHP網絡編程技巧總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結合實例形式分析了php實現針對有序表插值查找的相關操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現的多維數組排序算法,結合實例形式對比分析了php針對多維數組及帶有鍵名的多維數組進行排序相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結合ajaxuploadfile實現無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: 国产欧美日韩在线一区 | 国产小视频精品 | 日本aa毛片a级毛片免费观看 | 欧美三级成人理伦 | 日韩一区二区三区在线 | 久久久久久久一区二区三区 | 在线观看一区 | 欧美一区二区三区在线观看 | 日韩国产黄色片 | 国产视频一区二区三区四区五区 | 欧美日韩大片 | 五月婷婷在线播放 | 亚洲天堂男人的天堂 | 男女视频免费 | 一区二区免费 | 日韩精品一区二区三区在线观看 | 日本在线综合 | 日韩在线资源 | 能看的av网站 | 亚洲高清视频在线观看 | 国产精品爱久久久久久久 | 欧美a在线看| www.亚洲一区二区 | 欧美在线一区二区三区 | 国产精品不卡 | 韩日一区二区三区 | 日韩精品视频在线 | 91高清在线观看 | 一级黄色影片在线观看 | 亚洲区一 | 做a视频 | 日本一区二区三区精品视频 | 一区二区三区欧美 | 成人精品区 | 无码日韩精品一区二区免费 | 精品av| 久久国产成人精品国产成人亚洲 | 日韩三级电影在线看 | 91视频国产一区 | 国产999精品久久久久久 | 一区二区三区国产在线观看 |