$loader = new FileLoader(); $scanner = new Scanner($loader, __DIR__ . '/apps.json'); $curl = new Curl(); $db = new \PDO("pgsql:dbname=test;host=localhost", 'postgres', 'postgres'); $url = urldecode($_REQUEST['url']); $url = filter_var($url, FILTER_VALIDATE_URL); if ($url !== false) { // проверим - есть ли у нас уже запись по этому сайту. Если есть - обновляем $isset = $db->query("SELECT * FROM site WHERE url = '{$url}'")->fetch(PDO::FETCH_ASSOC); // если нет - распознаём и сохраняем данные try { list($url) = explode('#', $url, 1); $curl->load($url); $pageHeaders = $curl->getResponseHeaders(); $pageContent = $curl->getResponseHtml(); $apps = $scanner->detect($url, $pageHeaders, $pageContent); } catch (Exception $e) { $apps = [['name' => $url, 'error' => $e->getMessage()]]; } // SAVE TO DB $db->beginTransaction(); try { $data = json_encode($apps, JSON_UNESCAPED_UNICODE); $data = pg_escape_string($data); $url = pg_escape_string($url); $rawHeaders = pg_escape_string($curl->getResponseHeaders()); $html = pg_escape_string($curl->getResponseHtml()); if (empty($isset)) { $sql = "INSERT INTO site (url, site_data, headers, html) VALUES ('{$url}', '{$data}', '{$rawHeaders}', '{$html}')"; } else { $id = $isset['id'];
.error { color: red; font-weight: bold; } </style> </head> <body> <?php foreach ($urls as $url) { // проверим - есть ли у нас уже запись по этому сайту. Если есть - не нужно добавлять. $isset = $db->query("SELECT * FROM site WHERE url = '{$url}'")->fetch(PDO::FETCH_ASSOC); if (empty($isset)) { $apps = [['error' => 'Not parsed']]; } else { $apps = $scanner->detect($url, $isset['headers'], $isset['html']); // $apps = json_decode($isset['site_data'], true); } // AND DISPLAY RESULT ?> <div> <div class="url"><?php echo $url; ?> </div> <div class="engine"> <?php if (empty($apps)) { echo ' '; } else {