{"id":134638,"date":"2026-01-28T14:06:28","date_gmt":"2026-01-28T08:06:28","guid":{"rendered":"http:\/\/rcl-radio.ru\/?p=134638"},"modified":"2026-01-28T14:06:28","modified_gmt":"2026-01-28T08:06:28","slug":"%d1%81%d1%87%d1%91%d1%82%d1%87%d0%b8%d0%ba-%d0%bf%d1%80%d0%be%d1%81%d0%bc%d0%be%d1%82%d1%80%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-%d0%be%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86","status":"publish","type":"post","link":"http:\/\/rcl-radio.ru\/?p=134638","title":{"rendered":"\u0421\u0447\u0451\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0430 php"},"content":{"rendered":"<p><span class=\"Markdown-Word\">\u0412<\/span><span class=\"Markdown-Word\">\u00a0\u044d\u0442\u043e\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0430\u0442\u044c\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u00a0<\/span><strong><span class=\"Markdown-Word\">\u0440\u0430\u0431\u043e\u0447\u0438\u0439<\/span><span class=\"Markdown-Word\">\u00a0PHP\u2011\u0441\u043a\u0440\u0438\u043f\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0441<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432.<\/span><span class=\"Markdown-Word\">\u00a0\u041a\u043e\u0434<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0JavaScript<\/span><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0430\u043d\u0430\u043b\u0438\u0437<\/span><span class=\"Markdown-Word\">\u00a0HTTP\u2011\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/span><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2026\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-28-14-05-53.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-134639\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2026\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-28-14-05-53-500x79.png\" alt=\"\" width=\"500\" height=\"79\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2026\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-28-14-05-53-500x79.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2026\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-28-14-05-53-200x31.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2026\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-28-14-05-53.png 624w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\"><span style=\"color: #66cc66;\">&lt;<\/span>?php\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u041f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c<\/span>\r\n$counterFile = <span style=\"color: #ff0000;\">'visits.txt'<\/span>;\r\n$logFile    = <span style=\"color: #ff0000;\">'visits_log.txt'<\/span>;\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ 1. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435<\/span>\r\n$ip = $_SERVER<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #ff0000;\">'REMOTE_ADDR'<\/span><span style=\"color: #66cc66;\">]<\/span> ?? <span style=\"color: #ff0000;\">'unknown'<\/span>;\r\n$userAgent = $_SERVER<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #ff0000;\">'HTTP_USER_AGENT'<\/span><span style=\"color: #66cc66;\">]<\/span> ?? <span style=\"color: #ff0000;\">'unknown'<\/span>;\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u041e\u0421<\/span>\r\n<span style=\"color: #000000; font-weight: bold;\">function<\/span> getOS<span style=\"color: #66cc66;\">(<\/span>$userAgent<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    $os = <span style=\"color: #ff0000;\">'Unknown'<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Windows'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $os = <span style=\"color: #ff0000;\">'Windows'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Mac OS X'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $os = <span style=\"color: #ff0000;\">'MacOS'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Linux'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">&amp;&amp;<\/span> strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Android'<\/span><span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $os = <span style=\"color: #ff0000;\">'Linux'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Android'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $os = <span style=\"color: #ff0000;\">'Android'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'iPhone'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">||<\/span> strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'iPad'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $os = <span style=\"color: #ff0000;\">'iOS'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">return<\/span> $os;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440<\/span>\r\n<span style=\"color: #000000; font-weight: bold;\">function<\/span> getBrowser<span style=\"color: #66cc66;\">(<\/span>$userAgent<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    $browser = <span style=\"color: #ff0000;\">'Unknown'<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Firefox'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $browser = <span style=\"color: #ff0000;\">'Firefox'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Chrome'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">&amp;&amp;<\/span>\r\n               strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Edg'<\/span><span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">&amp;&amp;<\/span>\r\n               strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Headless'<\/span><span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $browser = <span style=\"color: #ff0000;\">'Chrome'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Safari'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">&amp;&amp;<\/span> strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Chrome'<\/span><span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $browser = <span style=\"color: #ff0000;\">'Safari'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Edg'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $browser = <span style=\"color: #ff0000;\">'Edge'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Opera'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">||<\/span> strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'OPR'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $browser = <span style=\"color: #ff0000;\">'Opera'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span>strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'MSIE'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">||<\/span> strpos<span style=\"color: #66cc66;\">(<\/span>$userAgent, <span style=\"color: #ff0000;\">'Trident'<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $browser = <span style=\"color: #ff0000;\">'Internet Explorer'<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">return<\/span> $browser;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n$os = getOS<span style=\"color: #66cc66;\">(<\/span>$userAgent<span style=\"color: #66cc66;\">)<\/span>;\r\n$browser = getBrowser<span style=\"color: #66cc66;\">(<\/span>$userAgent<span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ 2. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043f\u043e\u0445\u043e\u0436 \u043b\u0438 \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u044c \u043d\u0430 \u0431\u043e\u0442\u0430 (\u0431\u0435\u0437 JS)<\/span>\r\n$isBot = <span style=\"color: #000000; font-weight: bold;\">false<\/span>;\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u0430) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 User\u2011Agent \u043d\u0430 \u0431\u043e\u0442\u043e\u0432\u0441\u043a\u0438\u0435 \u043c\u0430\u0440\u043a\u0435\u0440\u044b<\/span>\r\n$botPattern = <span style=\"color: #ff0000;\">'\/(bot|crawler|spider|slurp|scrapy|wget|curl|phantomjs|headless|automation|yandex|googlebot|bingbot)(?!chrome|firefox|safari|edge|opera|msie|trident)\/i'<\/span>;\r\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>preg_match<span style=\"color: #66cc66;\">(<\/span>$botPattern, $userAgent<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    $isBot = <span style=\"color: #000000; font-weight: bold;\">true<\/span>;\r\n    error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[BOT] User-Agent \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u0431\u043e\u0442: $userAgent\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u0431) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 HTTP\u2011\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 (\u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c)<\/span>\r\n$hasAccept = isset<span style=\"color: #66cc66;\">(<\/span>$_SERVER<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #ff0000;\">'HTTP_ACCEPT'<\/span><span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n$hasAcceptLanguage = isset<span style=\"color: #66cc66;\">(<\/span>$_SERVER<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #ff0000;\">'HTTP_ACEPT_LANGUAGE'<\/span><span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>$hasAccept <span style=\"color: #66cc66;\">&amp;&amp;<\/span> <span style=\"color: #66cc66;\">!<\/span>$hasAcceptLanguage<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #808080; font-style: italic;\">\/\/ \u0422\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u041e\u0411\u0410 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u2192 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0431\u043e\u0442\u043e\u043c<\/span>\r\n    $isBot = <span style=\"color: #000000; font-weight: bold;\">true<\/span>;\r\n    error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[BOT] \u041d\u0435\u0442 \u043d\u0438 Accept, \u043d\u0438 Accept-Language (IP: $ip)\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">elseif<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>$hasAcceptLanguage<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #808080; font-style: italic;\">\/\/ \u0415\u0441\u043b\u0438 \u043d\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e Accept-Language \u2192 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0431\u043e\u0442\u043e\u043c, \u043d\u043e \u043b\u043e\u0433\u0438\u0440\u0443\u0435\u043c<\/span>\r\n    error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[WARNING] \u041d\u0435\u0442 Accept-Language (IP: $ip)\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u0432) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u2011\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 IP)<\/span>\r\n$localIPPattern = <span style=\"color: #ff0000;\">'\/^(127<span style=\"color: #000099; font-weight: bold;\">\\.<\/span>|192<span style=\"color: #000099; font-weight: bold;\">\\.<\/span>168<span style=\"color: #000099; font-weight: bold;\">\\.<\/span>|10<span style=\"color: #000099; font-weight: bold;\">\\.<\/span>|172<span style=\"color: #000099; font-weight: bold;\">\\.<\/span>(1[6-9]|2[0-9]|3[0-1])<span style=\"color: #000099; font-weight: bold;\">\\.<\/span>)\/'<\/span>;\r\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>preg_match<span style=\"color: #66cc66;\">(<\/span>$localIPPattern, $ip<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #808080; font-style: italic;\">\/\/ \u0427\u0438\u0442\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 50 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438<\/span>\r\n    $logLines = <span style=\"color: #66cc66;\">@<\/span>file<span style=\"color: #66cc66;\">(<\/span>$logFile, FILE_IGNORE_NEW_LINES<span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>$logLines === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[ERROR] \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043b\u043e\u0433-\u0444\u0430\u0439\u043b: $logFile\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $recentLines = array_slice<span style=\"color: #66cc66;\">(<\/span>$logLines, -<span style=\"color: #cc66cc;\">50<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n        $recentFromIP = array_filter<span style=\"color: #66cc66;\">(<\/span>$recentLines, <span style=\"color: #000000; font-weight: bold;\">function<\/span><span style=\"color: #66cc66;\">(<\/span>$line<span style=\"color: #66cc66;\">)<\/span> use <span style=\"color: #66cc66;\">(<\/span>$ip<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n            <span style=\"color: #b1b100;\">return<\/span> strpos<span style=\"color: #66cc66;\">(<\/span>$line, $ip<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>== <span style=\"color: #000000; font-weight: bold;\">false<\/span> <span style=\"color: #66cc66;\">&amp;&amp;<\/span>\r\n                   <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">time<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> - strtotime<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">substr<\/span><span style=\"color: #66cc66;\">(<\/span>$line, <span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&lt;<\/span> <span style=\"color: #cc66cc;\">10<\/span>; <span style=\"color: #808080; font-style: italic;\">\/\/ \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 10 \u0441\u0435\u043a\u0443\u043d\u0434<\/span>\r\n        <span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n\u00a0\r\n        <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>count<span style=\"color: #66cc66;\">(<\/span>$recentFromIP<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">&gt;<\/span> <span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span> <span style=\"color: #808080; font-style: italic;\">\/\/ \u0431\u043e\u043b\u0435\u0435 3 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434<\/span>\r\n            $isBot = <span style=\"color: #000000; font-weight: bold;\">true<\/span>;\r\n            error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[BOT] \u0421\u043b\u0438\u0448\u043a\u043e\u043c \u0447\u0430\u0441\u0442\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0441 IP: $ip (\"<\/span>.<span style=\"color: #006600;\">count<\/span><span style=\"color: #66cc66;\">(<\/span>$recentFromIP<span style=\"color: #66cc66;\">)<\/span>.<span style=\"color: #ff0000;\">\" \u0437\u0430 10 \u0441\u0435\u043a)\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n        <span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u0433) \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0443\u0441\u0442\u043e\u0433\u043e User\u2011Agent<\/span>\r\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>empty<span style=\"color: #66cc66;\">(<\/span>$userAgent<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    $isBot = <span style=\"color: #000000; font-weight: bold;\">true<\/span>;\r\n    error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[BOT] User\u2011Agent \u043f\u0443\u0441\u0442\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ 3. \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0432\u0438\u0437\u0438\u0442 \u0432 \u043b\u043e\u0433<\/span>\r\n$logEntry = <span style=\"color: #0066cc;\">date<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">'Y-m-d H:i:s'<\/span><span style=\"color: #66cc66;\">)<\/span> . <span style=\"color: #ff0000;\">\"<span style=\"color: #000099; font-weight: bold;\">\\t<\/span>\"<\/span> .\r\n          $ip . <span style=\"color: #ff0000;\">\"<span style=\"color: #000099; font-weight: bold;\">\\t<\/span>\"<\/span> .\r\n          $os . <span style=\"color: #ff0000;\">\"<span style=\"color: #000099; font-weight: bold;\">\\t<\/span>\"<\/span> .\r\n          $browser . <span style=\"color: #ff0000;\">\"<span style=\"color: #000099; font-weight: bold;\">\\t<\/span>\"<\/span> .\r\n          <span style=\"color: #66cc66;\">(<\/span>$isBot ? <span style=\"color: #ff0000;\">'bot'<\/span> : <span style=\"color: #ff0000;\">'human'<\/span><span style=\"color: #66cc66;\">)<\/span> . <span style=\"color: #ff0000;\">\"<span style=\"color: #000099; font-weight: bold;\">\\n<\/span>\"<\/span>;\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">@<\/span>file_put_contents<span style=\"color: #66cc66;\">(<\/span>$logFile, $logEntry, FILE_APPEND<span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[ERROR] \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043b\u043e\u0433-\u0444\u0430\u0439\u043b: $logFile\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ 4. \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043b\u044e\u0434\u0435\u0439)<\/span>\r\n<span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">!<\/span>$isBot<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>file_exists<span style=\"color: #66cc66;\">(<\/span>$counterFile<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        $visits = <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span><span style=\"color: #66cc66;\">)<\/span>file_get_contents<span style=\"color: #66cc66;\">(<\/span>$counterFile<span style=\"color: #66cc66;\">)<\/span>;\r\n        $visits++;\r\n        <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">@<\/span>file_put_contents<span style=\"color: #66cc66;\">(<\/span>$counterFile, $visits<span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n            error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[ERROR] \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0447\u0451\u0442\u0447\u0438\u043a: $counterFile\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n            $visits = <span style=\"color: #cc66cc;\">0<\/span>;\r\n        <span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">@<\/span>file_put_contents<span style=\"color: #66cc66;\">(<\/span>$counterFile, <span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span> === <span style=\"color: #000000; font-weight: bold;\">false<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n            error_log<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"[ERROR] \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0447\u0451\u0442\u0447\u0438\u043a: $counterFile\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n            $visits = <span style=\"color: #cc66cc;\">0<\/span>;\r\n        <span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n            $visits = <span style=\"color: #cc66cc;\">1<\/span>;\r\n        <span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #b1b100;\">else<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n    <span style=\"color: #808080; font-style: italic;\">\/\/ \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u043e\u0442, \u0447\u0438\u0442\u0430\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u043d\u043e \u043d\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c)<\/span>\r\n    $visits = file_exists<span style=\"color: #66cc66;\">(<\/span>$counterFile<span style=\"color: #66cc66;\">)<\/span> ? <span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">int<\/span><span style=\"color: #66cc66;\">)<\/span>file_get_contents<span style=\"color: #66cc66;\">(<\/span>$counterFile<span style=\"color: #66cc66;\">)<\/span> : <span style=\"color: #cc66cc;\">0<\/span>;\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ 5. \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442<\/span>\r\necho <span style=\"color: #ff0000;\">\"&lt;small&gt;&lt;p&gt;\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432: &lt;b&gt;\"<\/span> . $visits . <span style=\"color: #ff0000;\">\"&lt;\/b&gt;&lt;\/p&gt;&lt;\/small&gt;\"<\/span>;\r\n\u00a0\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ 6. \u041e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f (\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438)<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/ \u0420\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u043d\u0438\u0436\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/*\r\necho \"&lt;pre&gt;\";\r\necho \"IP: $ip\\n\";\r\necho \"User-Agent: $userAgent\\n\";\r\necho \"OS: $os\\n\";\r\necho \"Browser: $browser\\n\";\r\necho \"isBot: \" . ($isBot ? '\u0434\u0430' : '\u043d\u0435\u0442') . \"\\n\";\r\necho \"HTTP_ACEPT: \" . ($hasAccept ? '\u0435\u0441\u0442\u044c' : '\u043d\u0435\u0442') . \"\\n\";\r\necho \"HTTP_ACEPT_LANGUAGE: \" . ($hasAcceptLanguage ? '\u0435\u0441\u0442\u044c' : '\u043d\u0435\u0442') . \"\\n\";\r\necho \"&lt;\/pre&gt;\";\r\n*\/<\/span>\r\n?<span style=\"color: #66cc66;\">&gt;<\/span>\r\n<\/pre>\n<p><span class=\"Markdown-Word\">\u0412<\/span><span class=\"Markdown-Word\">\u00a0\u044d\u0442\u043e\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0430\u0442\u044c\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u00a0<\/span><strong><span class=\"Markdown-Word\">\u0440\u0430\u0431\u043e\u0447\u0438\u0439<\/span><span class=\"Markdown-Word\">\u00a0PHP\u2011\u0441\u043a\u0440\u0438\u043f\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0441<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432.<\/span><span class=\"Markdown-Word\">\u00a0\u041a\u043e\u0434<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0JavaScript<\/span><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0430\u043d\u0430\u043b\u0438\u0437<\/span><span class=\"Markdown-Word\">\u00a0HTTP\u2011\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/span><\/p>\n<h2><span class=\"Markdown-Word\">\u0427\u0442\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0435\u043b\u0430\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043a\u0440\u0438\u043f\u0442<\/span><\/h2>\n<ol>\n<li data-value=\"1.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0430\u043d\u043d\u044b\u0435<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435<\/span><span class=\"Markdown-Word\">\u00a0(IP,<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent,<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u0421,<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440).<\/span><\/li>\n<li data-value=\"2.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u043f\u043e<\/span><span class=\"Markdown-Word\">\u00a04<\/span><span class=\"Markdown-Word\">\u00a0\u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f\u043c:<\/span>\n<ul>\n<li><span class=\"Markdown-Word\">\u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043b\u043e\u0432\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent;<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0HTTP\u2011\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432;<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0441\u043b\u0438\u0448\u043a\u043e\u043c<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0430\u0441\u0442\u044b\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0440\u043e\u0441\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0441<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0434\u043d\u043e\u0433\u043e<\/span><span class=\"Markdown-Word\">\u00a0IP;<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u043f\u0443\u0441\u0442\u043e\u0439<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent.<\/span><\/li>\n<\/ul>\n<\/li>\n<li data-value=\"3.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u043e\u0433<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0432\u0441\u0435\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u0438\u0437\u0438\u0442\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">visits_log.txt<\/span><\/code><span class=\"Markdown-Word\">.<\/span><\/li>\n<li data-value=\"4.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0447\u0451\u0442\u0447\u0438\u043a<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u0435\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">visits.txt<\/span><\/code><span class=\"Markdown-Word\">.<\/span><\/li>\n<li data-value=\"5.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0412\u044b\u0432\u043e\u0434\u0438\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0438\u0441\u043b\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443.<\/span><\/li>\n<\/ol>\n<hr \/>\n<h2><span class=\"Markdown-Word\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043a\u043e\u0434\u0430<\/span><\/h2>\n<h3><span class=\"Markdown-Word\">1.<\/span><span class=\"Markdown-Word\">\u00a0\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0443\u0442\u0435\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u0430\u043c<\/span><\/h3>\n<blockquote><p>$counterFile = &#8216;visits.txt&#8217;; \/\/ \u0421\u0447\u0451\u0442\u0447\u0438\u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<br \/>\n$logFile = &#8216;visits_log.txt&#8217;; \/\/ \u041b\u043e\u0433 \u0432\u0441\u0435\u0445 \u0432\u0438\u0437\u0438\u0442\u043e\u0432 (\u043b\u044e\u0434\u0438 + \u0431\u043e\u0442\u044b)<\/p><\/blockquote>\n<p><em><span class=\"Markdown-Word\">\u0412\u0430\u0436\u043d\u043e:<\/span><\/em><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043e\u043b\u0436\u043d\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u044b\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438<\/span><span class=\"Markdown-Word\">\u00a0PHP.<\/span><\/p>\n<h3><span class=\"Markdown-Word\">2.<\/span><span class=\"Markdown-Word\">\u00a0\u0421\u0431\u043e\u0440<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0430\u043d\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435<\/span><\/h3>\n<blockquote><p>$ip = $_SERVER[&#8216;REMOTE_ADDR&#8217;] ?? &#8216;unknown&#8217;;<br \/>\n$userAgent = $_SERVER[&#8216;HTTP_USER_AGENT&#8217;] ?? &#8216;unknown&#8217;;<\/p><\/blockquote>\n<ul>\n<li><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">$ip<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u2014 IP\u2011\u0430\u0434\u0440\u0435\u0441<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u044f.<\/span><\/li>\n<li><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">$userAgent<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u2014 \u0441\u0442\u0440\u043e\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0441<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u0421.<\/span><\/li>\n<\/ul>\n<h3><span class=\"Markdown-Word\">3.<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u0421<\/span><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/span><\/h3>\n<p><span class=\"Markdown-Word\">\u0424\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">getOS()<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0438\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">getBrowser()<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">$userAgent<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442:<\/span><\/p>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u041e\u0421:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0Windows,<\/span><span class=\"Markdown-Word\">\u00a0MacOS,<\/span><span class=\"Markdown-Word\">\u00a0Linux,<\/span><span class=\"Markdown-Word\">\u00a0Android,<\/span><span class=\"Markdown-Word\">\u00a0iOS<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u043b\u0438<\/span><span class=\"Markdown-Word\">\u00a0Unknown.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u0411\u0440\u0430\u0443\u0437\u0435\u0440:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0Chrome,<\/span><span class=\"Markdown-Word\">\u00a0Firefox,<\/span><span class=\"Markdown-Word\">\u00a0Safari,<\/span><span class=\"Markdown-Word\">\u00a0Edge,<\/span><span class=\"Markdown-Word\">\u00a0Opera,<\/span><span class=\"Markdown-Word\">\u00a0Internet<\/span><span class=\"Markdown-Word\">\u00a0Explorer<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u043b\u0438<\/span><span class=\"Markdown-Word\">\u00a0Unknown.<\/span><\/li>\n<\/ul>\n<p><em><span class=\"Markdown-Word\">\u041f\u0440\u0438\u043c\u0435\u0440:<\/span><\/em><\/p>\n<blockquote><p>User-Agent: Mozilla\/5.0 (X11; Linux x86_64) &#8230;<br \/>\n\u2192 \u041e\u0421: Linux, \u0411\u0440\u0430\u0443\u0437\u0435\u0440: Chrome<\/p><\/blockquote>\n<h3><span class=\"Markdown-Word\">4.<\/span><span class=\"Markdown-Word\">\u00a0\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0(<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">$isBot<\/span><\/code><span class=\"Markdown-Word\">)<\/span><\/h3>\n<h4><span class=\"Markdown-Word\">\u0430)<\/span><span class=\"Markdown-Word\">\u00a0\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent<\/span><\/h4>\n<blockquote><p>$botPattern = &#8216;\/(bot|crawler|&#8230;)(?!chrome|firefox|&#8230;)\/i&#8217;;<br \/>\nif (preg_match($botPattern, $userAgent)) {<br \/>\n$isBot = true;<br \/>\n}<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u0427\u0442\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0435\u043b\u0430\u0435\u0442:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0438\u0449\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043b\u043e\u0432\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u0438\u043f\u0430\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">bot<\/span><\/code><span class=\"Markdown-Word\">,\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">crawler<\/span><\/code><span class=\"Markdown-Word\">,\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">spider<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0435\u0441\u043b\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u043b\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u0430\u043a\u043e\u0433\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043b\u043e\u0432\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u0434\u0451\u0442\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">Chrome<\/span><\/code><span class=\"Markdown-Word\">,\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">Firefox<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0442.<\/span><span class=\"Markdown-Word\">\u00a0\u043f.,<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u0438\u0437\u0438\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u043c.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0438\u0441\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">error.log<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0438.<\/span><\/li>\n<\/ul>\n<h4><span class=\"Markdown-Word\">\u0431)<\/span><span class=\"Markdown-Word\">\u00a0\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0HTTP\u2011\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432<\/span><\/h4>\n<blockquote><p>$hasAccept = isset($_SERVER[&#8216;HTTP_ACEPT&#8217;]);<br \/>\n$hasAcceptLanguage = isset($_SERVER[&#8216;HTTP_ACEPT_LANGUAGE&#8217;]);<\/p>\n<p>if (!$hasAccept &amp;&amp; !$hasAcceptLanguage) {<br \/>\n$isBot = true; \/\/ \u041e\u0431\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u2192 \u0431\u043e\u0442<br \/>\n} elseif (!$hasAcceptLanguage) {<br \/>\n\/\/ \u0422\u043e\u043b\u044c\u043a\u043e Accept-Language \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u2192 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435<br \/>\n}<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u041f\u043e\u0447\u0435\u043c\u0443<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u0430\u0436\u043d\u043e:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0430\u0441\u0442\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u044d\u0442\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0432\u0438\u0437\u0438\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f,<\/span><span class=\"Markdown-Word\">\u00a0\u0435\u0441\u043b\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0445\u043e\u0442\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0434\u0438\u043d<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u0435\u0441\u0442\u044c.<\/span><\/li>\n<\/ul>\n<h4><span class=\"Markdown-Word\">\u0432)<\/span><span class=\"Markdown-Word\">\u00a0\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0430\u0441\u0442\u043e\u0442\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/span><\/h4>\n<blockquote><p>if (!preg_match($localIPPattern, $ip)) { \/\/ \u041d\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP<br \/>\n\/\/ \u0427\u0438\u0442\u0430\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 50 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0438\u0437 \u043b\u043e\u0433\u0430<br \/>\n$recentFromIP = array_filter($logLines, function($line) use ($ip) {<br \/>\nreturn strpos($line, $ip) !== false &amp;&amp;<br \/>\n(time() &#8212; strtotime(substr($line, 0, 19))) &lt; 10;<br \/>\n});<br \/>\nif (count($recentFromIP) &gt; 3) {<br \/>\n$isBot = true; \/\/ &gt;3 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 10 \u0441\u0435\u043a \u2192 \u0431\u043e\u0442<br \/>\n}<br \/>\n}<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u0414\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043a\u043e\u0433\u043e:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0442\u043e\u043b\u044c\u043a\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u043d\u0435\u0448\u043d\u0438\u0445<\/span><span class=\"Markdown-Word\">\u00a0IP<\/span><span class=\"Markdown-Word\">\u00a0(\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">127.0.0.1<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0440.<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u044b).<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u043e\u043b\u044c\u043a\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435<\/span><span class=\"Markdown-Word\">\u00a050<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0438\u0441\u0435\u0439.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u043b\u0435\u0435<\/span><span class=\"Markdown-Word\">\u00a03<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430<\/span><span class=\"Markdown-Word\">\u00a010<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0435\u043a\u0443\u043d\u0434<\/span><span class=\"Markdown-Word\">\u00a0\u2192 \u043c\u0435\u0442\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u00ab\u0431\u043e\u0442\u00bb.<\/span><\/li>\n<\/ul>\n<h4><span class=\"Markdown-Word\">\u0433)<\/span><span class=\"Markdown-Word\">\u00a0\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0443\u0441\u0442\u043e\u0433\u043e<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent<\/span><\/h4>\n<blockquote><p>if (empty($userAgent)) {<br \/>\n$isBot = true;<br \/>\n}<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u041f\u0440\u0438\u0447\u0438\u043d\u0430:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u0441\u0435\u0433\u0434\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442<\/span><span class=\"Markdown-Word\">\u00a0User\u2011Agent.<\/span><\/li>\n<\/ul>\n<h3><span class=\"Markdown-Word\">5.<\/span><span class=\"Markdown-Word\">\u00a0\u0417\u0430\u043f\u0438\u0441\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u043e\u0433<\/span><\/h3>\n<blockquote><p>$logEntry = date(&#8216;Y-m-d H:i:s&#8217;) . &#171;\\t&#187; . $ip . &#171;\\t&#187; . $os . &#171;\\t&#187; . $browser . &#171;\\t&#187; . ($isBot ? &#8216;bot&#8217; : &#8216;human&#8217;) . &#171;\\n&#187;;<br \/>\nfile_put_contents($logFile, $logEntry, FILE_APPEND);<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u0424\u043e\u0440\u043c\u0430\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u043e\u0433\u0430:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0434\u0430\u0442\u0430,<\/span><span class=\"Markdown-Word\">\u00a0IP,<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u0421,<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440,<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0430\u0442\u0443\u0441<\/span><span class=\"Markdown-Word\">\u00a0(bot\/human).<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u041f\u0440\u0438\u043c\u0435\u0440<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0438\u0441\u0438:<\/span><\/strong><\/li>\n<\/ul>\n<blockquote><p>2026-01-28 07:52:51 127.0.0.1 Linux Chrome human<\/p><\/blockquote>\n<h3><span class=\"Markdown-Word\">6.<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432<\/span><\/h3>\n<blockquote><p>if (!$isBot) {<br \/>\n\/\/ \u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u043d\u0430 1<br \/>\n$visits = (int)file_get_contents($counterFile) + 1;<br \/>\nfile_put_contents($counterFile, $visits);<br \/>\n} else {<br \/>\n\/\/ \u0414\u043b\u044f \u0431\u043e\u0442\u043e\u0432 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<br \/>\n$visits = file_exists($counterFile) ? (int)file_get_contents($counterFile) : 0;<br \/>\n}<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u0422\u043e\u043b\u044c\u043a\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u044e\u0434\u0435\u0439:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0441\u0447\u0451\u0442\u0447\u0438\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u0440\u0430\u0441\u0442\u0451\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u0438\u0448\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u0438\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">$isBot<\/span><span class=\"Markdown-Word\">\u00a0= false<\/span><\/code><span class=\"Markdown-Word\">.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0448\u0438\u0431\u043e\u043a:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0435\u0441\u043b\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d<\/span><span class=\"Markdown-Word\">\u00a0\u2014 \u043b\u043e\u0433\u0438\u0440\u0443\u0435\u0442\u0441\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0448\u0438\u0431\u043a\u0430,<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0447\u0451\u0442\u0447\u0438\u043a<\/span><span class=\"Markdown-Word\">\u00a0= 0.<\/span><\/li>\n<\/ul>\n<h3><span class=\"Markdown-Word\">7.<\/span><span class=\"Markdown-Word\">\u00a0\u0412\u044b\u0432\u043e\u0434<\/span><span class=\"Markdown-Word\">\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430<\/span><\/h3>\n<blockquote><p>echo &#171;&lt;small&gt;&lt;p&gt;\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432: &lt;b&gt;&#187; . $visits . &#171;&lt;\/b&gt;&lt;\/p&gt;&lt;\/small&gt;&#187;;<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u0413\u0434\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435,<\/span><span class=\"Markdown-Word\">\u00a0\u0433\u0434\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043a\u0440\u0438\u043f\u0442.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u0424\u043e\u0440\u043c\u0430\u0442:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u00ab\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432:\u00a0<\/span><strong><span class=\"Markdown-Word\">N<\/span><\/strong><span class=\"Markdown-Word\">\u00bb.<\/span><\/li>\n<\/ul>\n<h3><span class=\"Markdown-Word\">8.<\/span><span class=\"Markdown-Word\">\u00a0\u041e\u0442\u043b\u0430\u0434\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0(\u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e)<\/span><\/h3>\n<blockquote><p>\/*<br \/>\necho &#171;&lt;pre&gt;&#187;;<br \/>\necho &#171;IP: $ip\\n&#187;;<br \/>\n\/\/ &#8230; \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435<br \/>\necho &#171;&lt;\/pre&gt;&#187;;<br \/>\n*\/<\/p><\/blockquote>\n<ul>\n<li><strong><span class=\"Markdown-Word\">\u041a\u0430\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043b\u043e\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u044b\u0432\u043e\u0434\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0435\u0442\u0430\u043b\u0435\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.<\/span><\/li>\n<li><strong><span class=\"Markdown-Word\">\u0414\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0435\u0433\u043e:<\/span><\/strong><span class=\"Markdown-Word\">\u00a0\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0431\u043b\u0435\u043c<\/span><span class=\"Markdown-Word\">\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432).<\/span><\/li>\n<\/ul>\n<hr \/>\n<h2><span class=\"Markdown-Word\">\u041a\u0430\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c<\/span><\/h2>\n<ol>\n<li data-value=\"1.\" data-shift=\"1\"><span class=\"Markdown-Word\">\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u043a\u043e\u0434<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b<\/span><span class=\"Markdown-Word\">\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">counter.php<\/span><\/code><span class=\"Markdown-Word\">).<\/span><\/li>\n<li data-value=\"2.\" data-shift=\"1\"><span class=\"Markdown-Word\">\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u044b\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">visits.txt<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0438\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">visits_log.txt<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u043e\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0436\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438.<\/span><\/li>\n<li data-value=\"3.\" data-shift=\"1\"><span class=\"Markdown-Word\">\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c,<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0442\u043e<\/span><span class=\"Markdown-Word\">\u00a0PHP<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u043c\u0435\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u0430\u0432\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0438\u0441\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u044d\u0442\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u044b:<\/span><\/li>\n<\/ol>\n<blockquote><p>chmod 644 visits.txt visits_log.txt<\/p><\/blockquote>\n<p><span class=\"Markdown-Word\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043a\u0440\u0438\u043f\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0443\u0436\u043d\u043e\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435:<\/span><\/p>\n<blockquote><p>&lt;?php include &#8216;counter.php&#8217;; ?&gt;<\/p><\/blockquote>\n<h2><span class=\"Markdown-Word\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f<\/span><\/h2>\n<ol>\n<li data-value=\"1.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0417\u0430\u0449\u0438\u0442\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0430\u043a\u0440\u0443\u0442\u043a\u0438:<\/span><\/strong>\n<ul>\n<li><span class=\"Markdown-Word\">\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0IP<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0447\u0451\u0440\u043d\u044b\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043f\u0438\u0441\u043e\u043a<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u043b\u0435<\/span><span class=\"Markdown-Word\">\u00a0N<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0435\u0441\u0441\u0438\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435\u0439.<\/span><\/li>\n<\/ul>\n<\/li>\n<li data-value=\"2.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430:<\/span><\/strong>\n<ul>\n<li><span class=\"Markdown-Word\">\u0421\u0447\u0438\u0442\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043d\u044f\u043c\/\u043c\u0435\u0441\u044f\u0446\u0430\u043c.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0412\u044b\u0432\u043e\u0434\u0438\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u043e\u043f\u2011\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432\/\u041e\u0421.<\/span><\/li>\n<\/ul>\n<\/li>\n<li data-value=\"3.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c:<\/span><\/strong>\n<ul>\n<li><span class=\"Markdown-Word\">\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043e\u0441\u0442\u0443\u043f<\/span><span class=\"Markdown-Word\">\u00a0\u043a\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">visits_log.txt<\/span><\/code><span class=\"Markdown-Word\">\u00a0\u0447\u0435\u0440\u0435\u0437\u00a0<\/span><code class=\"Markdown-Word\"><span class=\"Markdown-Word\">.htaccess<\/span><\/code><span class=\"Markdown-Word\">.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0412\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0IP<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0435\u0440\u0435\u0434<\/span><span class=\"Markdown-Word\">\u00a0\u0437\u0430\u043f\u0438\u0441\u044c\u044e<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u043e\u0433.<\/span><\/li>\n<\/ul>\n<\/li>\n<li data-value=\"4.\" data-shift=\"1\"><strong><span class=\"Markdown-Word\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c:<\/span><\/strong>\n<ul>\n<li><span class=\"Markdown-Word\">\u0414\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0430\u0439\u0442\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0430\u0437\u0443<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u0430\u043d\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0(MySQL,<\/span><span class=\"Markdown-Word\">\u00a0SQLite)<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u043c\u0435\u0441\u0442\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0444\u0430\u0439\u043b\u043e\u0432.<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<hr \/>\n<h2><span class=\"Markdown-Word\">\u0418\u0442\u043e\u0433\u0438<\/span><\/h2>\n<p><strong><span class=\"Markdown-Word\">\u041f\u043b\u044e\u0441\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043a\u0440\u0438\u043f\u0442\u0430:<\/span><\/strong><\/p>\n<ul>\n<li><span class=\"Markdown-Word\">\u041d\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0JavaScript.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u041b\u043e\u0433\u0438\u0440\u0443\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u0441\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0432\u0438\u0437\u0438\u0442\u044b<\/span><span class=\"Markdown-Word\">\u00a0\u0434\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0430.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u041f\u0440\u043e\u0441\u0442\u043e\u0439<\/span><span class=\"Markdown-Word\">\u00a0\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435.<\/span><\/li>\n<\/ul>\n<p><strong><span class=\"Markdown-Word\">\u041a\u043e\u0433\u0434\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442:<\/span><\/strong><\/p>\n<ul>\n<li><span class=\"Markdown-Word\">\u0414\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u0438\u0447\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043b\u043e\u0433\u043e\u0432,<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u043e\u0440\u0442\u0444\u043e\u043b\u0438\u043e,<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0430\u0439\u0442\u043e\u0432.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0415\u0441\u043b\u0438<\/span><span class=\"Markdown-Word\">\u00a0\u043d\u0443\u0436\u043d\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0430\u0437\u043e\u0432\u0430\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0435\u0437<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043b\u043e\u0436\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u0438\u0441\u0442\u0435\u043c<\/span><span class=\"Markdown-Word\">\u00a0(Google<\/span><span class=\"Markdown-Word\">\u00a0Analytics).<\/span><\/li>\n<\/ul>\n<p><strong><span class=\"Markdown-Word\">\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:<\/span><\/strong><\/p>\n<ul>\n<li><span class=\"Markdown-Word\">\u041c\u043e\u0436\u0435\u0442<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u043e\u0442\u043e\u0432,<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u043c\u0438\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440.<\/span><\/li>\n<li><span class=\"Markdown-Word\">\u0414\u043b\u044f<\/span><span class=\"Markdown-Word\">\u00a0\u043a\u0440\u0443\u043f\u043d\u044b\u0445<\/span><span class=\"Markdown-Word\">\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432<\/span><span class=\"Markdown-Word\">\u00a0\u043b\u0443\u0447\u0448\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/span><span class=\"Markdown-Word\">\u00a0\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435<\/span><span class=\"Markdown-Word\">\u00a0\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b.<\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u00a0\u044d\u0442\u043e\u0439\u00a0\u0441\u0442\u0430\u0442\u044c\u0435\u00a0\u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u00a0\u0440\u0430\u0431\u043e\u0447\u0438\u0439\u00a0PHP\u2011\u0441\u043a\u0440\u0438\u043f\u0442\u00a0\u0434\u043b\u044f\u00a0\u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0430\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445\u00a0\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432\u00a0\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\u00a0\u0441\u00a0\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0435\u0439\u00a0\u0431\u043e\u0442\u043e\u0432.\u00a0\u041a\u043e\u0434\u00a0\u043d\u0435\u00a0\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u00a0JavaScript\u00a0\u0438\u00a0\u043e\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f\u00a0\u043d\u0430\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u00a0HTTP\u2011\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. &lt;?php \/\/ \u041f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c $counterFile = &#8216;visits.txt&#8217;; $logFile = &#8216;visits_log.txt&#8217;; \u00a0 \/\/ 1. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435\u043b\u0435 $ip = $_SERVER[&#8216;REMOTE_ADDR&#8217;] ?? &#8216;unknown&#8217;; $userAgent = $_SERVER[&#8216;HTTP_USER_AGENT&#8217;] ?? &#8216;unknown&#8217;; \u00a0 \/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u041e\u0421 function getOS($userAgent) { $os = &#8216;Unknown&#8217;; if (strpos($userAgent, &#8216;Windows&#8217;) !== false) { $os = &#8216;Windows&#8217;; } elseif (strpos($userAgent, &#8216;Mac OS X&#8217;) !== [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":134639,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[183],"tags":[],"class_list":["post-134638","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"views":128,"_links":{"self":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/134638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=134638"}],"version-history":[{"count":1,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/134638\/revisions"}],"predecessor-version":[{"id":134640,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/134638\/revisions\/134640"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/media\/134639"}],"wp:attachment":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=134638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=134638"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=134638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}