<?php
class NameGenerator
{
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 = 'domain_name_list.txt';
$numberOfCharsInName = 3;
$numberOfNames = 10;
$name = new NameGenerator($file);
$name->createName($numberOfCharsInName, $numberOfNames);