<?php
class FileStrategy {
const OK_STATE_ROB="Файл robots.txt присутствует";
const OK_REC_ROB="Доработки не требуются";
const ER_STATE_ROB="Файл robots.txt отсутствует";
const ER_REC_ROB="Программист: Создать файл robots.txt и разместить его на сайте.";
const OK_STATE_HOST="Директива Host указана";
const OK_REC_HOST="Доработки не требуются";
const ER_STATE_HOST="В файле robots.txt не указана директива Host";
const ER_REC_HOST="Программист: Для того, чтобы поисковые системы знали, какая версия сайта является основных зеркалом, необходимо прописать адрес основного зеркала в директиве Host. В данный момент это не прописано. Необходимо добавить в файл robots.txt директиву Host. Директива Host задётся в файле 1 раз, после всех правил.";
const OK_STATE_CHOST="В файле прописана 1 директива Host";
const OK_REC_CHOST="Доработки не требуются";
const ER_STATE_CHOST="В файле прописано несколько директив Host";
const ER_REC_CHOST="Программист: Директива Host должна быть указана в файле толоко 1 раз. Необходимо удалить все дополнительные директивы Host и оставить только 1, корректную и соответствующую основному зеркалу сайта";
const OK_STATE_ROBS="Размер файла robots.txt составляет __, что находится в пределах допустимой нормы";
const OK_REC_ROBS="Доработки не требуются";
const ER_STATE_ROBS="Размера файла robots.txt составляет __, что превышает допустимую норму";
const ER_REC_ROBS="Программист: Максимально допустимый размер файла robots.txt составляем 32 кб. Необходимо отредактировть файл robots.txt таким образом, чтобы его размер не превышал 32 Кб";
const OK_STATE_SMAP="Директива Sitemap указана";
const OK_REC_SMAP="Доработки не требуются";
const ER_STATE_SMAP="В файле robots.txt не указана директива Sitemap";
const ER_REC_SMAP="Программист: Добавить в файл robots.txt директиву Sitemap";
const OK_STATE_200="Файл robots.txt присутствует";
const OK_REC_200="Доработки не требуются";
const ER_STATE_200="Файл robots.txt отсутствует";
const ER_REC_200="Программист: Создать файл robots.txt и разместить его на сайте.";
// function exsist_robots();
// function exsist_host();
// function count_host();
// function fsize();
// function exsist_sitemap();
// function exsist_200();
}
/**
* PHPExcel
*
* Copyright (C) 2006 - 2012 PHPExcel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* @category PHPExcel
* @package PHPExcel
* @copyright Copyright (c) 2006 - 2012 PHPExcel (http://www.codeplex.com/PHPExcel)
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
* @version ##VERSION##, ##DATE##
*/
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
/** Include PHPExcel */
require_once 'C:/PHP_programming. OpenServer/OpenServer/domains/ex.pp/trunk/Classes/PHPExcel.php';
/** Error reporting */
# code...
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Andrey")
->setLastModifiedBy("Andrey")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// Add some data
$objPHPExcel->getActiveSheet()->mergeCells('A3:A4');
$objPHPExcel->getActiveSheet()->mergeCells('A2:E2');
$objPHPExcel->getActiveSheet()->mergeCells('A5:E5');
$objPHPExcel->getActiveSheet()->mergeCells('B3:B4');
$objPHPExcel->getActiveSheet()->mergeCells('C3:C4');
$objPHPExcel->getActiveSheet()->mergeCells('A6:A7');
$objPHPExcel->getActiveSheet()->mergeCells('A8:E8');
$objPHPExcel->getActiveSheet()->mergeCells('B6:B7');
$objPHPExcel->getActiveSheet()->mergeCells('C6:C7');
$objPHPExcel->getActiveSheet()->mergeCells('A9:A10');
$objPHPExcel->getActiveSheet()->mergeCells('A11:E11');
$objPHPExcel->getActiveSheet()->mergeCells('B9:B10');
$objPHPExcel->getActiveSheet()->mergeCells('C9:C10');
$objPHPExcel->getActiveSheet()->mergeCells('A12:A13');
$objPHPExcel->getActiveSheet()->mergeCells('A14:E14');
$objPHPExcel->getActiveSheet()->mergeCells('B12:B13');
$objPHPExcel->getActiveSheet()->mergeCells('C12:C13');
$objPHPExcel->getActiveSheet()->mergeCells('A15:A16');
$objPHPExcel->getActiveSheet()->mergeCells('A17:E17');
$objPHPExcel->getActiveSheet()->mergeCells('B15:B16');
$objPHPExcel->getActiveSheet()->mergeCells('C15:C16');
$objPHPExcel->getActiveSheet()->mergeCells('A18:A19');
$objPHPExcel->getActiveSheet()->mergeCells('A17:E17');
$objPHPExcel->getActiveSheet()->mergeCells('B18:B19');
$objPHPExcel->getActiveSheet()->mergeCells('C18:C19');
//Изменяю ширену яцейки. Стандартная ширина одной ячейки 10.
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(40);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(14);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
//Устанавливаем Цвет ячеек.
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->getStartColor()->setARGB('FFFF0000');
//Вставка текста шаблона в таблицу.
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '№')
->setCellValue('B1', 'Название проверки')
->setCellValue('C1', 'Статус')
->setCellValue('E1', 'Текущее состояние')
->setCellValue('A3', '6')
->setCellValue('B3', 'Проверка указания дерективы Host')
->setCellValue('D3', 'Состояние')
->setCellValue('D4', 'Рекомендации')
->setCellValue('A6', '6')
->setCellValue('B6', 'Проверка указания дерективы Host')
->setCellValue('D6', 'Состояние')
->setCellValue('D7', 'Рекомендации')
->setCellValue('A9', '8')
->setCellValue('B9', 'Проверка количества директив Host, прописанных в файле')
->setCellValue('D9', 'Состояние')
->setCellValue('D10', 'Рекомендации')
->setCellValue('A12', '10')
->setCellValue('B12', 'Проверка размера файла robots.txt')
->setCellValue('D12', 'Состояние')
->setCellValue('D13', 'Рекомендации')
->setCellValue('A15', '11')
->setCellValue('B15', 'Проверка указания директивы Sitemap')
->setCellValue('D15', 'Состояние')
->setCellValue('D16', 'Рекомендации')
->setCellValue('A18', '12')
->setCellValue('B18', 'Проверка кода ответа сервера для файла robots.txt')
->setCellValue('D18', 'Состояние')
->setCellValue('D19', 'Рекомендации');
// ->setCellValue('C3', 'OK')
// ->setCellValue('E3', 'Файл robots.txt присутствует')
// ->setCellValue('E4', 'Доработки не требуются')
// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A4', 'Miscellaneous glyphs');
// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
if (!empty($_POST['url'])) {
echo "<pre>";
//var_dump($_POST);
$file_robots="/robots.txt";
// $get_code=file_get_contents($_POST['url']);
$get_robots_file=extract($_POST);
//print_r($url);
$save=file_put_contents("text.txt",$url.$file_robots);
$get_code=file_get_contents("text.txt");
$get_code2=file_get_contents($get_code);
//var_dump($get_code2);
//is exist User?
$serch="agent";
$pos=strripos($get_code2, $serch);
echo "<br>get from pos<br>";
//var_dump($pos);
if (!empty($pos)) {
$exsist_user="yes";
# code...
}else{
$exsist_user="not";
}
//is exist Host?
$serch="Host:";
$pos=strripos($get_code2, $serch);
echo "<br>get from is host<br>";
//var_dump($pos);
if (!empty($pos)) {
$exsist_host="yes";
# code...
}else{
$exsist_host="not";
}
//How much host is exsist?
//Проверяет, какое количество хостов находится в файле роботс.тхт
$to_arrayy=explode("Host:", $get_code2);
echo "Is Array ? ";
// var_dump($to_arrayy);
// echo "<pre>";
$counta=array_count_values($to_arrayy);
// echo "<pre>";
//var_dump($counta);
$rescount=count($counta)-1;
switch ($rescount) {
case 1:
$numberOfHost="one";
# code...
break;
default:
$numberOfHost="more";
# code...
break;
}
//количество хостов
echo "File host is $rescount <br><br>";
//размер файла роботс
$fsize=filesize("text.txt");
//наличие ситемап
$serch="Sitemap:";
$pos=strripos($get_code2, $serch);
echo "<br>get from is Sitemap ?<br>";
//var_dump($pos);
if (!empty($pos)) {
$exsist_smap="yes";
# code...
}else{
$exsist_smap="not";
}
//Проверяю, есть ли ответ сервера 200.
$array_to_str=implode('', get_headers($get_code));
$serch="200";
$pos=strripos($array_to_str, $serch);
echo "<br>get from is host<br>";
//var_dump($pos);
if (!empty($pos)) {
$server_responze_200="yes";
# code...
}else{
$server_responze_200="not";
}
if ($server_responze_200=='yes') {
$_SESSION['saveme']="yeah";
# code...
}
echo "is exsist user ? ".($exsist_user);
echo "<br>";
echo "is exsist host ? ".($exsist_host)."<br>";
echo "size of file $fsize</br>";
echo "is exsist Sitemap ? ".($exsist_smap);
echo "<br>";
echo "is exsist 200 ? ".($server_responze_200);
echo "<br>";
echo "<br>get from file";
echo "<pre>";
print_r($get_code);//
print_r(get_headers($get_code));
}else{
echo" web site url is empty";
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test task</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="url">
<button type="submit" value="RunToTable">Check your website</button>
</form>
</body>
</html>