{"id":689,"date":"2025-06-11T17:42:10","date_gmt":"2025-06-11T09:42:10","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/andweb\/689.html"},"modified":"2025-06-11T17:42:10","modified_gmt":"2025-06-11T09:42:10","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8php%e4%b8%ad%e6%8f%90%e5%8f%96user-agent","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/689.html","title":{"rendered":"\u5982\u4f55\u5728PHP\u4e2d\u63d0\u53d6User-Agent"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;PHP&#20013;&#25552;&#21462;<code>User-Agent<\/code>&#22836;&#20449;&#24687;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#29616;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992; <code>$_SERVER<\/code> &#21464;&#37327;<\/h3>\n<p><code>$_SERVER<\/code> &#26159;&#19968;&#20010;&#36229;&#32423;&#20840;&#23616;&#21464;&#37327;&#65292;&#21253;&#21547;&#20102;&#26381;&#21153;&#22120;&#31471;&#30340;&#20449;&#24687;&#12290;<code>HTTP_USER_AGENT<\/code> &#26159;&#20854;&#20013;&#30340;&#19968;&#20010;&#38190;&#65292;&#29992;&#20110;&#23384;&#20648;&#23458;&#25143;&#31471;&#30340;&#27983;&#35272;&#22120;&#20449;&#24687;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#33719;&#21462; User-Agent &#22836;&#20449;&#24687;\n$userAgent = $_SERVER['HTTP_USER_AGENT'];\n\n\/\/ &#36755;&#20986; User-Agent\necho \"User-Agent: \" . $userAgent;\n?&gt;<\/code><\/pre>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>getenv()<\/code> &#20989;&#25968;<\/h3>\n<p><code>getenv()<\/code> &#20989;&#25968;&#21487;&#20197;&#29992;&#26469;&#33719;&#21462;&#29615;&#22659;&#21464;&#37327;&#65292;&#21253;&#25324;<code>USER_AGENT<\/code>&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#33719;&#21462; User-Agent &#22836;&#20449;&#24687;\n$userAgent = getenv('HTTP_USER_AGENT');\n\n\/\/ &#36755;&#20986; User-Agent\necho \"User-Agent: \" . $userAgent;\n?&gt;<\/code><\/pre>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992;&#31532;&#19977;&#26041;&#24211;&#65288;&#22914; <code>curl<\/code>&#65289;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#22797;&#26434;&#30340;&#22788;&#29702;&#65292;&#27604;&#22914;&#35299;&#26512;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#20013;&#30340;&#29305;&#23450;&#37096;&#20998;&#65292;&#21487;&#20197;&#20351;&#29992; <code>curl<\/code> &#24211;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#21021;&#22987;&#21270; cURL &#36164;&#28304;\n$ch = curl_init();\n\n\/\/ &#35774;&#32622; URL\ncurl_setopt($ch, CURLOPT_URL, 'http:\/\/example.com');\n\n\/\/ &#35774;&#32622;&#35831;&#27714;&#22836;\ncurl_setopt($ch, CURLOPT_HTTPHEADER, [\n    'Accept-Language: en-US,en;q=0.5',\n    'User-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/58.0.3029.110 Safari\/537.3'\n]);\n\n\/\/ &#25191;&#34892; cURL &#35831;&#27714;\n$response = curl_exec($ch);\n\n\/\/ &#20851;&#38381; cURL &#36164;&#28304;\ncurl_close($ch);\n\n\/\/ &#36755;&#20986; User-Agent\necho \"User-Agent: \" . $response;\n?&gt;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;&#65306;&#35299;&#26512; <code>User-Agent<\/code> &#23383;&#31526;&#20018;<\/h3>\n<p>&#20551;&#35774;&#20320;&#26377;&#19968;&#20010; <code>User-Agent<\/code> &#23383;&#31526;&#20018;&#65292;&#24182;&#19988;&#20320;&#24819;&#20174;&#20013;&#25552;&#21462;&#27983;&#35272;&#22120;&#21517;&#31216;&#21644;&#29256;&#26412;&#21495;&#65292;&#21487;&#20197;&#20351;&#29992;&#27491;&#21017;&#34920;&#36798;&#24335;&#26469;&#23436;&#25104;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#31034;&#20363; User-Agent &#23383;&#31526;&#20018;\n$userAgent = 'Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/58.0.3029.110 Safari\/537.3';\n\n\/\/ &#20351;&#29992;&#27491;&#21017;&#34920;&#36798;&#24335;&#21305;&#37197;&#27983;&#35272;&#22120;&#21517;&#31216;&#21644;&#29256;&#26412;&#21495;\npreg_match('\/^([^s]+)\/(d+.d+)\/', $userAgent, $matches);\n\nif (isset($matches[1]) &amp;&amp; isset($matches[2])) {\n    echo \"Browser Name: \" . $matches[1] . \"n\";\n    echo \"Version: \" . $matches[2] . \"n\";\n} else {\n    echo \"&#26080;&#27861;&#35299;&#26512; User-Agent &#23383;&#31526;&#20018;n\";\n}\n?&gt;<\/code><\/pre>\n<p>&#36825;&#20123;&#26041;&#27861;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;PHP&#20013;&#26377;&#25928;&#22320;&#25552;&#21462;&#21644;&#22788;&#29702;<code>User-Agent<\/code>&#22836;&#20449;&#24687;&#12290;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#36873;&#25321;&#21512;&#36866;&#30340;&#26041;&#27861;&#21363;&#21487;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#27010;&#35272;<\/h2><p>&#22312;&#32593;&#39029;&#24320;&#21457;&#20013;&#65292;&#30830;&#23450;&#29992;&#25143;&#20351;&#29992;&#30340;&#35774;&#22791;&#25110;&#27983;&#35272;&#22120;&#31867;&#22411;&#23545;&#20110;&#21508;&#31181;&#21151;&#33021;&#65288;&#22914;&#20998;&#26512;&#12289;&#20860;&#23481;&#24615;&#35843;&#25972;&#25110;&#20165;&#25552;&#20379;&#20010;&#24615;&#21270;&#20307;&#39564;&#65289;&#26469;&#35828;&#38750;&#24120;&#37325;&#35201;&#12290;&#24120;&#29992;&#30340;&#26041;&#27861;&#20043;&#19968;&#26159;&#20174;HTTP&#35831;&#27714;&#22836;&#20013;&#25552;&#21462;User-Agent&#23383;&#31526;&#20018;&#12290;&#22312;PHP&#20013;&#65292;&#36825;&#20010;&#20219;&#21153;&#38750;&#24120;&#31616;&#21333;&#65292;&#22240;&#20026;&#20854;&#20840;&#23616;&#25968;&#32452;&#21644;&#39044;&#23450;&#20041;&#20989;&#25968;&#21487;&#20197;&#23436;&#25104;&#36825;&#39033;&#24037;&#20316;&#12290;&#26412;&#25945;&#31243;&#23558;&#25351;&#23548;&#24744;&#22914;&#20309;&#22312;PHP&#20013;&#25552;&#21462;&#24182;&#35299;&#26512;User-Agent&#23383;&#31526;&#20018;&#12290;<\/p><h3>User-Agent &#26159;&#25351;&#27983;&#35272;&#22120;&#21521;&#26381;&#21153;&#22120;&#21457;&#36865;&#30340;&#19968;&#26465;&#35831;&#27714;&#22836;&#65292;&#23427;&#21253;&#21547;&#23458;&#25143;&#31471;&#30340;&#36719;&#20214;&#20449;&#24687;&#21644;&#27983;&#35272;&#22120;&#31867;&#22411;&#31561;&#35814;&#32454;&#20449;&#24687;&#12290;<\/h3><p>&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#65288;User-Agent&#65289;&#26159;&#27599;&#20010;&#35831;&#27714;&#21457;&#36865;&#21040;&#26381;&#21153;&#22120;&#26102;&#20276;&#38543;&#30340;HTTP&#22836;&#37096;&#30340;&#19968;&#37096;&#20998;&#12290;&#23427;&#21487;&#20197;&#24110;&#21161;&#25552;&#20379;&#23458;&#25143;&#31471;&#36719;&#20214;&#21644;&#30828;&#20214;&#30340;&#30456;&#20851;&#20449;&#24687;&#65292;&#27604;&#22914;&#27983;&#35272;&#22120;&#31867;&#22411;&#21644;&#29256;&#26412;&#12289;&#25805;&#20316;&#31995;&#32479;&#20197;&#21450;&#26576;&#20123;&#24773;&#20917;&#19979;&#35774;&#22791;&#31867;&#22411;&#31561;&#12290;&#19979;&#38754;&#25105;&#20204;&#23558;&#28085;&#30422;&#22522;&#30784;&#30693;&#35782;&#24182;&#28145;&#20837;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992;PHP&#20195;&#30721;&#20174;&#36825;&#20010;&#23383;&#31526;&#20018;&#20013;&#25552;&#21462;&#26377;&#29992;&#30340;&#20449;&#24687;&#12290;<\/p><h2>&#20837;&#38376;&#65306;&#22312;PHP&#20013;&#33719;&#21462;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;<\/h2><p>&#33719;&#21462;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#30340;&#35775;&#38382;&#26435;&#38480;&#12290;<code>$_SERVER['HTTP_USER_AGENT']<\/code>PHP &#25552;&#20379;&#20102;&#19968;&#20010;&#20840;&#29699;&#21270;&#30340;&#25903;&#25345;&#12290;<code>$_SERVER<\/code>&#21253;&#21547;&#20449;&#24687;&#30340;&#25968;&#32452;&#65292;&#22914;&#22836;&#12289;&#36335;&#24452;&#21644;&#33050;&#26412;&#20301;&#32622;&#12290;&#35813;&#25968;&#32452;&#21253;&#25324;&#19968;&#20010;&#31216;&#20026;&#30340;&#20803;&#32032;&#12290;<code>'HTTP_USER_AGENT'<\/code>&#65292;&#20320;&#21487;&#20197;&#30452;&#25509;&#20351;&#29992;&#23427;&#26469;&#35775;&#38382;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#12290;&#36825;&#37324;&#26377;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#65306;<\/p><pre><code>&lt;?php echo $_SERVER['HTTP_USER_AGENT']; ?&gt;<\/code><\/pre><p>&#26816;&#26597;&#26159;&#21542;&#26377;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#35774;&#32622; &#20026;&#20102;&#38450;&#27490;&#20351;&#29992;&#23427;&#26102;&#20986;&#29616;&#38169;&#35823;&#65292;&#36825;&#26159;&#19968;&#20010;&#22909;&#20064;&#24815;&#65292;&#22312;&#23581;&#35797;&#20351;&#29992;&#20043;&#21069;&#26816;&#26597;&#26159;&#21542;&#35774;&#32622;&#20102;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#12290;&#20026;&#27492;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26041;&#27861;&#65306;<code>isset()<\/code>&#21151;&#33021;&#65306;<\/p><pre><code>&lt;?php \nif (isset($_SERVER['HTTP_USER_AGENT'])) { \n   $user_agent = $_SERVER['HTTP_USER_AGENT']; \n   \/\/ Work with the User-Agent string \n} else { \n   \/\/ Handle the absence of User-Agent \n} \n?&gt;<\/code><\/pre><h2>&#29702;&#35299;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;<\/h2><p>&#22312;&#20351;&#29992;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#20043;&#21069;&#65292;&#20102;&#35299;&#20854;&#32467;&#26500;&#38750;&#24120;&#37325;&#35201;&#12290;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#21487;&#20197;&#22797;&#26434;&#24471;&#22810;&#65292;&#22240;&#20026;&#23427;&#21253;&#21547;&#35768;&#22810;&#26631;&#35782;&#35831;&#27714;&#23458;&#25143;&#31471;&#21508;&#31181;&#26041;&#38754;&#30340;&#20196;&#29260;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#30340;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#65306;<\/p><pre><code>Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/58.0.3029.110 Safari\/537.36<\/code><\/pre><p>&#35813;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#34920;&#26126;&#35831;&#27714;&#26469;&#33258;&#19968;&#20010;&#29256;&#26412;&#20026;58.0.3029.110&#30340;Chrome&#27983;&#35272;&#22120;&#65292;&#36816;&#34892;&#22312;Windows 10&#26426;&#22120;&#19978;&#12290;<\/p><h2>&#35299;&#26512;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;<\/h2><p>&#22312;&#33719;&#21462;&#21040;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#21518;&#65292;&#19979;&#19968;&#27493;&#23601;&#26159;&#35299;&#26512;&#23427;&#20197;&#25552;&#21462;&#25152;&#38656;&#30340;&#20449;&#24687;&#12290;&#22312;PHP&#20013;&#65292;&#26377;&#22810;&#31181;&#26041;&#27861;&#21487;&#20197;&#20570;&#21040;&#36825;&#19968;&#28857;&#65306;<\/p><p>&#20351;&#29992;&#20869;&#32622;&#20989;&#25968;&#65292;PHP&#26377;&#19968;&#20010;&#20869;&#32622;&#20989;&#25968;&#12290;<code>get_browser()<\/code>&#21487;&#20197;&#29992;&#26469;&#35299;&#26512;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#30340;&#26041;&#27861;&#12290;&#38656;&#35201;&#35774;&#32622;&#19968;&#20010;Browscap.INI&#25991;&#20214;&#65292;&#35813;&#25991;&#20214;&#30001;PHP&#24341;&#29992;&#12290;&#28982;&#32780;&#65292;&#36825;&#31181;&#26041;&#27861;&#21487;&#33021;&#20250;&#21344;&#29992;&#22823;&#37327;&#20869;&#23384;&#65292;&#24182;&#19988;&#32500;&#25252;&#36825;&#20010;Browscap.INI&#25991;&#20214;&#20197;&#20445;&#25345;&#26368;&#26032;&#29366;&#24577;&#21487;&#33021;&#26159;&#19968;&#39033;&#36127;&#25285;&#12290;&#22240;&#27492;&#65292;&#36890;&#24120;&#26356;&#36731;&#37327;&#32423;&#30340;&#35299;&#20915;&#26041;&#26696;&#34987;&#39318;&#36873;&#12290;<\/p><p>&#27491;&#21017;&#34920;&#36798;&#24335; &#20320;&#21487;&#20197;&#20351;&#29992;&#27491;&#21017;&#34920;&#36798;&#24335;&#26469;&#25552;&#21462;&#27983;&#35272;&#22120;&#21517;&#31216;&#21644;&#29256;&#26412;&#12290;&#36825;&#31181;&#26041;&#27861;&#33021;&#32473;&#20320;&#31934;&#30830;&#25511;&#21046;&#26597;&#25214;&#20449;&#24687;&#30340;&#33021;&#21147;&#65306;<\/p><pre><code>&lt;?php \r\n\r\nif (isset($_SERVER['HTTP_USER_AGENT'])) {\r\n    \/\/ Define a regex pattern to match the browser and version\r\n    $pattern = '\/(firefox|msie|chrome|safari)[ \/](d+)\/i';\r\n\r\n    if (preg_match($pattern, $_SERVER['HTTP_USER_AGENT'], $matches)) {\r\n        $browser = $matches[1];\r\n        $version = $matches[2];\r\n        \/\/ Do something with the browser name and version\r\n    }\r\n}\r\n\r\n?&gt;\r\n<\/code><\/pre><h2>&#31532;&#19977;&#26041;&#24211;&#29992;&#20110;&#35299;&#26512;&#29992;&#25143;&#20195;&#29702;<\/h2><p>&#22914;&#26524;&#20320;&#26356;&#21916;&#27426;&#31616;&#27905;&#30340;&#22788;&#29702;&#26041;&#24335;&#25110;&#32773;&#38656;&#35201;&#20840;&#38754;&#35299;&#26512;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#65292;&#24066;&#38754;&#19978;&#26377;&#24456;&#22810;&#31532;&#19977;&#26041;&#24211;&#21487;&#20379;&#36873;&#25321;&#12290;&#20197;&#19979;&#26159;&#19968;&#20123;&#29992;&#20110;&#22788;&#29702;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#30340;&#27969;&#34892;&#24211;&#65306;\n\nPython:\n\nuser_agent: &#19968;&#20010;&#31616;&#21333;&#30340;&#29992;&#25143;&#20195;&#29702;&#31649;&#29702;&#24211;&#12290;\nrequests: &#34429;&#28982;&#20027;&#35201;&#29992;&#20110;HTTP&#35831;&#27714;&#65292;&#20294;&#20063;&#21487;&#20197;&#29992;&#26469;&#35299;&#26512;&#21644;&#26500;&#36896;User-Agent&#12290;\n\nJavaScript:\n\nua-parser-js: &#36825;&#20010;&#24211;&#19987;&#38376;&#29992;&#20110;&#35299;&#26512;&#21644;&#20998;&#26512;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#12290;\n\nJava:\n\norg.apache.httpcomponents:httpcore: &#21487;&#20197;&#36890;&#36807;&#19968;&#20123;&#39069;&#22806;&#30340;&#20195;&#30721;&#26469;&#35299;&#26512;User-Agent&#23383;&#31526;&#20018;&#12290;\n\nRuby:\n\nruby-ua-parser: Ruby&#29256;&#30340;&#29992;&#25143;&#20195;&#29702;&#35299;&#26512;&#24211;&#12290;\n\nPHP:\n\nphp-http\/http-client: &#29992;&#20110;HTTP&#23458;&#25143;&#31471;&#25805;&#20316;&#30340;PHP&#24211;&#65292;&#21487;&#20197;&#38598;&#25104;&#29992;&#25143;&#20195;&#29702;&#35299;&#26512;&#21151;&#33021;&#12290;\n\n&#36825;&#20123;&#24211;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;&#19981;&#21516;&#30340;&#32534;&#31243;&#35821;&#35328;&#29615;&#22659;&#20013;&#39640;&#25928;&#22320;&#22788;&#29702;&#21644;&#20998;&#26512;&#29992;&#25143;&#20195;&#29702;&#20449;&#24687;&#12290;<\/p><p>uap-php &#26159;&#19968;&#20010;&#22522;&#20110; uap &#39033;&#30446;&#65288;&#30001; ua-parser &#31038;&#21306;&#32500;&#25252;&#65289;&#30340; PHP &#23454;&#29616;&#65292;&#29992;&#20110;&#35299;&#26512;&#27983;&#35272;&#22120;&#12289;&#24341;&#25806;&#12289;&#25805;&#20316;&#31995;&#32479;&#12289;CPU &#21644;&#35774;&#22791;&#31867;&#22411;&#31561;&#20449;&#24687;&#65292;&#20174;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#20013;&#25552;&#21462;&#12290;<\/p><p>whichbrowser\/parser &#8211; &#19968;&#20010;&#38750;&#24120;&#20934;&#30830;&#21644;&#26356;&#26032;&#30340;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#35299;&#26512;&#22120;&#12290;<\/p><p>&#20687;&#36825;&#26679;&#30340;&#22270;&#20070;&#39302;&#36890;&#24120;&#38656;&#35201;&#20351;&#29992;PHP&#30340;&#21253;&#31649;&#29702;&#22120;Composer&#26469;&#21253;&#21547;&#23427;&#20204;&#22312;&#39033;&#30446;&#20013;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;PHP&#39033;&#30446;&#20013;&#20351;&#29992;ua-parser&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>\n&lt;?php\nrequire_once 'vendor\/autoload.php';\nuse UAParserParser;\n\n$ua = $_SERVER['HTTP_USER_AGENT'];\n$parser = Parser::create();\n$result = $parser-&gt;parse($ua);\n\necho 'Browser: ' . $result-&gt;ua-&gt;family . ' ' . $result-&gt;ua-&gt;major . \"n\";\necho 'Operating System: ' . $result-&gt;os-&gt;family . \"n\";\necho 'Device Type: ' . ($result-&gt;device-&gt;type === null ? 'Other' : $result-&gt;device-&gt;type) . \"n\";\n?&gt;\n<\/code><\/pre><h2>&#20851;&#20110;User-Agent&#23383;&#31526;&#20018;&#30340;&#24120;&#35265;&#38382;&#39064;&#35299;&#31572;<\/h2><p>&#29992;&#25143;&#20195;&#29702;&#65288;User-Agent&#65289;&#21487;&#20197;&#34987;spoof&#12290;<\/p><p>&#26159;&#30340;&#65292;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#21487;&#20197;&#34987;&#20266;&#36896;&#65292;&#32780;&#19988;&#24456;&#22810;&#26102;&#20505;&#26159;&#30001;&#26426;&#22120;&#20154;&#21644;&#19968;&#20123;&#27983;&#35272;&#22120;&#20801;&#35768;&#29992;&#25143;&#26356;&#25913;&#20854;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#12290;<\/p><p>&#20351;&#29992;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#26469;&#23454;&#29616;&#20851;&#38190;&#21151;&#33021;&#21487;&#38752;&#21527;&#65311;<\/p><p>&#30001;&#20110;&#27450;&#39575;&#12289;&#21508;&#31181;&#35774;&#22791;&#21644;&#27983;&#35272;&#22120;&#30340;&#22810;&#26679;&#24615;&#65292;&#20351;&#29992;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#26469;&#23454;&#29616;&#20851;&#38190;&#21151;&#33021;&#24182;&#19981;&#23436;&#20840;&#21487;&#38752;&#12290;<\/p><p>&#25152;&#26377;&#30340;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#26159;&#21542;&#37117;&#20197;&#30456;&#21516;&#30340;&#26041;&#24335;&#32467;&#26500;&#65311;<\/p><p>&#19981;&#65292;&#29992;&#25143;&#20195;&#29702;&#23383;&#31526;&#20018;&#22312;&#27983;&#35272;&#22120;&#20043;&#38388;&#21644;&#35774;&#22791;&#20043;&#38388;&#21487;&#33021;&#20250;&#26377;&#24456;&#22823;&#30340;&#24046;&#24322;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#25353;&#29031;&#26412;&#25945;&#31243;&#20013;&#30340;&#26041;&#27861;&#65292;&#24320;&#21457;&#32773;&#21487;&#20197;&#26377;&#25928;&#22320;&#25552;&#21462;&#21644;&#21033;&#29992;PHP&#20013;&#30340;User-Agent&#23383;&#31526;&#20018;&#12290;&#34429;&#28982;&#19968;&#20123;&#26041;&#27861;&#25552;&#20379;&#20102;&#31616;&#21333;&#30340;&#26816;&#27979;&#33021;&#21147;&#65292;&#20294;&#20854;&#20182;&#26041;&#27861;&#25552;&#20379;&#20102;&#28145;&#20837;&#20998;&#26512;&#12290;&#26681;&#25454;&#24744;PHP&#39033;&#30446;&#30340;&#38656;&#35201;&#36873;&#25321;&#21512;&#36866;&#30340;&#26041;&#27861;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312;PHP&#20013;&#25552;&#21462;User-Agent&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<code>getallheaders()<\/code>&#20989;&#25968;&#12290;&#36825;&#20010;&#20989;&#25968;&#36820;&#22238;&#25152;&#26377;&#24050;&#30693;&#30340;HTTP&#22836;&#21517;&#31216;&#21450;&#20854;&#20540;&#30340;&#19968;&#32500;&#25968;&#32452;&#12290;<\/p>\n<p>&#20197;&#19979;&#26159;&#22914;&#20309;&#20351;&#29992;&#30340;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ &#33719;&#21462;&#35831;&#27714;&#30340;&#29992;&#25143;&#20195;&#29702;&#20449;&#24687;\n$userAgent = $_SERVER['HTTP_USER_AGENT'];\n\necho \"User-Agent: $userAgent\";\n\n?&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#36890;&#36807;<code>$_SERVER['HTTP_USER_AGENT']<\/code>&#33719;&#21462;&#20102;&#29992;&#25143;&#30340;&#27983;&#35272;&#22120;&#20449;&#24687;&#65288;User-Agent&#65289;&#12290;&#28982;&#21518;&#65292;&#25105;&#20204;&#23558;&#32467;&#26524;&#25171;&#21360;&#20986;&#26469;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#36825;&#31181;&#26041;&#27861;&#21482;&#33021;&#29992;&#20110;GET&#35831;&#27714;&#12290;&#22914;&#26524;&#20320;&#38656;&#35201;&#22788;&#29702;POST&#35831;&#27714;&#25110;&#20854;&#20182;&#31867;&#22411;&#30340;&#35831;&#27714;&#65292;&#35831;&#30830;&#20445;&#20320;&#24050;&#32463;&#27491;&#30830;&#22320;&#35774;&#32622;&#20102;<code>$_SERVER['REQUEST_METHOD']<\/code>&#21464;&#37327;&#26469;&#35782;&#21035;&#35831;&#27714;&#31867;&#22411;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312;PHP&#20013;&#25552;&#21462;User-Agent&#22836;&#20449;&#24687;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#038;#24335..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[43],"tuisongtax":[],"class_list":["post-689","my1js","type-my1js","status-publish","hentry","my1js2nav-andweb"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/689","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=689"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=689"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=689"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}