<table cellspacing="0" cellpadding="0"> <tr><td class="t_f" id="postmessage_65137"> <div class="blockcode"> <div id="code_b1s"><ol> <?php <li> <li>define('HOST_FILE', 'C:WindowsSystem32driversetchosts'); <li> <li> $hm = new HostManage(HOST_FILE); $env = $argv[1]; $env)) { <li> $hm->delAllGroup(); <li> } else { </li> <li> $hm->addGroup($env); </li> <li> } </li> <li> </li> <li> class HostManage { </li> <li> </li> <li> // ホスト ファイル パス </li> <li> protected $file; </li> <li> // ホストレコード配列 </li> <li> protected $hosts = array(); </li> <li> // 設定ファイルのパス、デフォルトは '.ini' です </li> <li> protected $configFile </li> <li> // ini 設定ファイルから読み取られる設定配列 </li> <li> protected $config; = array(); </li> <li> // 設定ファイルで設定する必要があるドメイン名 </li> <li> protected $domain = array() </li> <li> // 設定ファイルによって取得される IP データ </li> <li> protected $ip = array(); </li> <li> public function __construct($file, $config_file = null) { </li> <li> $this->file = $file; </li> <li> if ($config_file) { </li> <li> $this->configFile = $config_file } else { </li> <li> $this; ->configFile = __FILE__ </li> <li> } </li> <li> $this->initHosts() </li> <li> ->initCfg() </li> <li> </li> <li> パブリック関数 __destruct() { </li> <li> $this->write() ; </li> <li> } </li> <li> </li> <li> public function initHosts() { </li> <li> $lines = file($this->file); </li> <li> foreach ($lines as $line) { </li> <li> $line = トリム($line); $line) || $line[0] == '#') { </li> <li> 継続 </li> <li> } </li> <li> $this->hosts[$item[1] ]] = $item[0] } </li> <li> return $this; </li> <li> </li> <li> public function initCfg() { </li> <li> if (! file_exists($this->configFile)) { </li> <li> $this->config = array (); } else { </li> <li> $this->config = (parse_ini_file($this->configFile, true)) </li> <li> } </li> <li> $this->domain = array_keys($this->config['ドメイン']) ; </li> <li> $this->ip = $this->config['ip']; </li> <li> $this; } </li> <li> </li> <li> /**</li> <li> * 設定ファイル内のドメインのホストを削除します </li> <li>*/ </li> <li> パブリック関数 delAllGroup() { </li> <li> foreach ($this ->ドメインを $domain として) { </li> <li> $this->delRecord($domain); } </li> <li> } </li> <li> </li> <li> /**</li> <li> * 指定された IP にドメインを設定します </li> <li> * @param type $env </li> <li> * @return HostManage </li> <li>*/ </li> <li> public function addGroup($env) { </li> <li> if ( ! isset( $this->ip[$env])) { </li> <li> return $this; } </li> <li> foreach ($this->domain as $domain) { </li> <li> $this->addRecord($domain, $this -> ip[$env]); </li> <li> } </li> <li> $this; } </li> <li> </li> <li> /**</li> <li> * ホストレコードを追加します </li> <li> * @param type $ip </li> <li> * @param type $domain </li> <li>*/ </li> <li> function addRecord($domain, $ip) { </li> <li> $this->hosts ] = $ ip; </li> <li> return $this; } </li> <li> </li> <li> /**</li> <li> * ホストレコードを削除します </li> <li> * @param type $domain </li> <li>*/ </li> <li> function delRecord($domain) { </li> <li> unset($this->hosts[$domain]); </li> <li> } </li> <li> </li> <li> /**</li> <li> * ホストファイルに書き込みます </li> <li>*/ </li> <li> public function write() { </li> <li> $str = ''; </li> <li> foreach ($this->hosts as $domain => $ip) { </li> <li> $str .= $ip . $ドメイン </li> <li> }</li> <li> file_put_contents($this->file, $str); </li> <li> return $this } </li> <li> </li> <li> } </li> <li> </ol></div> コードをコピーします<em onclick="copycode($('code_b1s'));"></em> </div> 使用法: <br><div class="blockcode"> <div id="code_bYV"> <ol> php hosts.php local # ドメイン名はローカルマシン 127.0.0.1 を指します <li> php hosts.php dev # ドメイン名は開発マシン 192.168.1.100 を指します </li> <li> php hosts.php #ドメイン名のホスト構成を削除します</li> <li> </ol> </div>コードをコピーします<em onclick="copycode($('code_bYV'));"></em> </div> <br> </td></tr> </table> ホスト、PHP<div class="ptg mbm mtn"> </div> <div id="comment_65137" class="cm"> </div> <div id="post_rate_div_65137"> </div> <br>