domainWorker(); $this->createNginx($lines); } /** * @return array */ public function domainWorker() { $domainsFile = "/home/travis/build/mitchellkrogza/nginx-ultimate-bad-bot-blocker/_generator_lists/bad-referrers.list"; $handle = fopen($domainsFile, "r"); if (!$handle) { throw new \RuntimeException('Error opening file ' . $domainsFile); } $lines = array(); while (($line = fgets($handle)) !== false) { $line = trim(preg_replace('/\s\s+/', ' ', $line)); // convert internationalized domain names if (preg_match('/[А-Яа-яЁёɢ]/u', $line)) { $IDN = new IdnaConvert(); $line = $IDN->encode($line); } if (empty($line)) { continue; } $lines[] = $line; } fclose($handle); $uniqueLines = array_unique($lines, SORT_STRING); sort($uniqueLines, SORT_STRING); if (is_writable($domainsFile)) { file_put_contents($domainsFile, implode("\n", $uniqueLines)); } else { trigger_error("Permission denied"); } return $lines; } /** * Write to File Function * @param $filename * @param $data */ protected function writeToFile($filename, $data) { $file = "/home/travis/build/mitchellkrogza/nginx-ultimate-bad-bot-blocker/.dev-tools/referrers-regex-format-whitelist-test.txt"; $handle = fopen($file, 'w') or die('Cannot open file: '.$file); fwrite($handle, $data); } /** * @param string $date * @param array $lines */ public function createNginx(array $lines) { $file = "/home/travis/build/mitchellkrogza/nginx-ultimate-bad-bot-blocker/.dev-tools/referrers-regex-format-whitelist-test.txt"; $data = ""; { foreach ($lines as $line) { //$data .= "\"~*\b" . preg_quote($line) . "\"\b" "\t1;\n"; $data .= '"' . '~*(?:\\' . 'b)' . preg_quote($line) . '(?:\\' . "b)\" \t0;\n"; } $this->writeToFile($file, $data); } } } $generator = new Generator(); $generator->generateFiles();