0
3
1
Domain name generator
<?php
class NameGenerator
{
/*
Domain Name Generator
Stop manually entering in random letter combinations.
1.) Create a list of random character strings i.e. "cba"
2.) Submit list of name to your domain registrar
https://www.dynadot.com/domain/bulk-search.html
*/
	private $filename = '';
	public function __construct($filename){
		$this->filename = $filename;
	}

	private function getDomainList(){
		if (!file_exists($this->filename)){
			file_put_contents($this->filename, '');
		}

		$output = file_get_contents($this->filename);
		$arr = explode("\n", $output);
		return array_filter($arr);
	}

	private function doesNameExists($domain){
		$domainList = $this->getDomainList();
		if(!in_array($domain, $domainList) ){
			return 'F';
		}
	}

	public function createName($numberOfCharsInName = null, $numberOfNames = null){
		if(is_null($numberOfCharsInName) || is_null($numberOfNames)){
	 		return;
		}

		$cnt = 0;
		$randLetter= 'abcdefghijklmonpqrstuvwxyz';
		do{
			$str = "";
			for ($x = 0; $x < $numberOfCharsInName; $x++){
				$ranNum = mt_rand(0, strlen($randLetter)-1);
				$str   .= substr($randLetter, $ranNum, 1);
			}

			$doesKeyExists = $this->doesNameExists($str);
			if($doesKeyExists === 'F') {
				echo 'WHATS THE COUNT '. $str." - ".$cnt."\n";
				$name = "{$str}".PHP_EOL;
				file_put_contents($this->filename, $name, FILE_APPEND);
			}

			$cnt++;
		}while($cnt < $numberOfNames);
	}
}

// FILE NAME THAT HOLDS THE LIST OF NAMES
$file = 'domain_name_list.txt';

// HOW MANY LETTERS TO INCLUDE IN NAME
$numberOfCharsInName = 3;

// HOW MANY NAMES IN LIST
$numberOfNames = 10;

$name = new NameGenerator($file);
$name->createName($numberOfCharsInName, $numberOfNames);