>백엔드 개발 >PHP 튜토리얼 >호스트를 변경하는 PHP 스크립트

호스트를 변경하는 PHP 스크립트

WBOY
WBOY원래의
2016-07-25 08:43:28943검색
  1. 정의('HOST_FILE', 'C:WindowsSystem32driversetchosts')
  2. $hm = new HostManage(HOST_FILE);
  3. $env = $argv[1];
  4. if (empty($env)) {
  5. $hm->delAllGroup()
  6. } else {
  7. $hm ->addGroup($env);
  8. }
  9. class HostManage {
  10. // 호스트 파일 경로
  11. protected $file
  12. // 레코드 배열 호스트
  13. protected $hosts = array();
  14. // 구성 파일 경로, 기본값은 __FILE__ .
  15. protected $configFile
  16. // ini 구성 파일에서 읽은 구성 배열 $config = array();
  17. // 구성 파일에 구성할 도메인 이름
  18. protected $domain = array()
  19. // 구성 파일에서 가져온 IP 데이터
  20. protected $ ip = array();
  21. 공개 함수 __construct($file, $config_file = null) {
  22. $this->file = $file
  23. if ($config_file) {
  24. $ this->config_file = $config_file;
  25. } else {
  26. $this->configFile = __FILE__ .ini'
  27. }
  28. $this->initHosts()
  29. ->initCfg();
  30. }
  31. 공용 함수 __destruct() {
  32. $this->write()
  33. }
  34. 공용 함수 initHosts( ) {
  35. $lines = file($this->file);
  36. foreach ($lines as $line) {
  37. $line = Trim($line)
  38. if (empty($ line) ) || $line[0] == '#') {
  39. 계속;
  40. }
  41. $item = preg_split('/s /', $line)
  42. $this-> ; 호스트[$item[1]] = $item[0];
  43. }
  44. return $this
  45. }
  46. public function initCfg() {
  47. if (!file_exists ( $this->configFile)) {
  48. $this->config = array();
  49. } else {
  50. $this->config = (parse_ini_file($this->configFile, true ));
  51. $this->domain = array_keys($this->config['domain'])
  52. $this->ip = $this->config[ ' ip'];
  53. return $this;
  54. }
  55. /**
  56. * 구성 파일에서 도메인의 호스트를 삭제하세요
  57. */
  58. 공개 함수 delAllGroup() {
  59. foreach($this->domain $domain) {
  60. $this->delRecord($domain);
  61. }
  62. }
  63. /**
  64. * 지정된 IP로 도메인 구성
  65. * @param type $env
  66. * @return HostManage
  67. */
  68. 공용 함수 addGroup($env ) {
  69. if (!isset($this->ip[$env])) {
  70. return $this
  71. }
  72. foreach ($this->domain as $domain) {
  73. $this->addRecord($domain, $this->ip[$env])
  74. }
  75. return $this
  76. }
  77. /**
  78. * 호스트 레코드 추가
  79. * @param type $ip
  80. * @param type $domain
  81. */
  82. function addRecord($domain, $ip) {
  83. $this->hosts[$domain] = $ip
  84. return $this
  85. }
  86. /**
  87. * 호스트 레코드 삭제
  88. * @param type $domain
  89. */
  90. function delRecord($domain) {
  91. unset($this->hosts[$domain])
  92. return $this
  93. }
  94. /**
  95. * 호스트 파일 쓰기
  96. */
  97. 공용 함수 write() {
  98. $str = ''
  99. foreach ($this->hosts as $domain => $ip) {
  100. $str .= $ip . $domain
  101. }
  102. file_put_contents($this->file, $str);
  103. return $this
  104. }
  105. }
코드 복사
php 호스트.php # 도메인 이름의 호스트 구성 삭제
    코드 복사
호스트, PHP

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.