О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
Scrips php
us.content
// Из списка ссылок проверяем их статус $time = microtime(true); // Файл для записи ссылок $file = 'links.txt'; // Файл c результатом $fileRes = 'results.csv'; // Забираем ссылки, каждая с новой строки $content = file_get_contents('https://site.ru/test.php'); file_put_contents($file, $content); $uris = explode('<br>', $content); $domain = 'https://domain.massive.ru/'; // Слэш в конце обязателен $urls = []; if (file_exists($fileRes)) { unlink($fileRes); } // Открываем файл для записи $file = fopen($fileRes, 'w'); // Записываем заголовки fputcsv($file, ['url', 'status']); $count = 0; foreach ($uris as $uri) { $url = $domain . $uri; $headers = get_headers($url); $code = substr($headers[0] ?? 'HTTP/1.0 500', 9, 3); fputcsv($file, [$url, $code]); $count++; } // Закрываем файл fclose($file); $time = microtime(true) - $time; dd("Экспорт завершен успешно. Обработано $count записей. Время выполнения: $time секунд"); // Делаем несколько попыток запроса $attempts = 3; for ($i = 1; $i <= $attempts; $i++) { try { $res = Http::withHeaders(['Content-Type' => 'application/json']) ->timeout($timeout) ->{$method}( 'https://ms.fandeco.ru/rest/' . $route, $params ); if ($res->successful()) { break; } } catch (\Exception $e) { $error = $e->getMessage(); } } if (empty($res) || !$res->successful()) { throw new \Exception('Ошибка ' . $route . ' ' . print_r([ 'params' => $params, 'error' => $error ?? null, ], true)); } // Проверить IP входит ли он в маску, в данном пример в локальные ip function ipInRange($ip, $range) { if (strpos($range, '/') !== false) { list($range, $netmask) = explode('/', $range); $range = ip2long($range); $ip = ip2long($ip); $netmask = -1 << (32 - $netmask); $range &= $netmask; return ($ip & $netmask) === $range; } else { return $ip === ip2long($range); } } function ipInLocal($ip) { $masks = [ '10.0.0.0/8', '100.64.0.0/10', '172.16.0.0/12', '192.168.0.0/16', ]; foreach ($masks as $mask) { if (ipInRange($ip, $mask)) { return true; } } return false; } /** * @param string $content * @param string $tag * @param array $attributes * @return string */ function getTagHtml(string $content, string $tag = 'div', array $attributes = []): string { $attrs = ''; if ($attributes) { foreach ($attributes as $key => $val) { $attrs .= " {$key}=\"{$val}\""; } } return "<{$tag}{$attrs}>{$content}</{$tag}>"; }
Список