微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断_PHP教程
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 微信浏览器 HTTP_USER_AGENT
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin-if31-http_user_agent.html
在微信公众平台的开发过程中,我们有时需要开发网页并判断是否是是来自微信浏览器访问,本文介绍如何做出这一判断。
一、$_SERVER数组
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
在 $_SERVER 中,你也许能够,也许不能够找到下面的这些元素。注意,如果以命令行方式运行 PHP,下面列出的元素几乎没有有效的(或是没有任何实际意义的)。
- 'PHP_SELF'
- 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到/test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
- 'argv'
- 传递给该脚本的参数的数组。当脚本以命令行方式运行时,argv 变量传递给程序 C 语言样式的命令行参数。当通过 GET 方式调用时,该变量包含query string。
- 'argc'
- 包含命令行模式下传递给该脚本的参数的数目(如果运行在命令行模式下)。
- 'GATEWAY_INTERFACE'
- 服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。
- 'SERVER_ADDR'
- 当前运行脚本所在的服务器的 IP 地址。
- 'SERVER_NAME'
- 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。
- 'SERVER_SOFTWARE'
- 服务器标识字符串,在响应请求时的头信息中给出。
- 'SERVER_PROTOCOL'
- 请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
- 'REQUEST_METHOD'
- 访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”
- 'REQUEST_TIME'
- 请求开始时的时间戳。从 PHP 5.1.0 起可用。
- 'REQUEST_TIME_FLOAT'
- 请求开始时的时间戳,微秒级别的精准度。 自 PHP 5.4.0 开始生效。
- 'QUERY_STRING'
- query string(查询字符串),如果有的话,通过它进行页面访问。
- 'DOCUMENT_ROOT'
- 当前运行脚本所在的文档根目录。在服务器配置文件中定义。
- 'HTTP_ACCEPT'
- 当前请求头中 Accept: 项的内容,如果存在的话。
- 'HTTP_ACCEPT_CHARSET'
- 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。
- 'HTTP_ACCEPT_ENCODING'
- 当前请求头中 Accept-Encoding: 项的内容,如果存在的话。例如:“gzip”。
- 'HTTP_ACCEPT_LANGUAGE'
- 当前请求头中 Accept-Language: 项的内容,如果存在的话。例如:“en”。
- 'HTTP_CONNECTION'
- 当前请求头中 Connection: 项的内容,如果存在的话。例如:“Keep-Alive”。
- 'HTTP_HOST'
- 当前请求头中 Host: 项的内容,如果存在的话。
- 'HTTP_REFERER'
- 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。
- 'HTTP_USER_AGENT'
- 当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。
- 'HTTPS'
- 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
- 'REMOTE_ADDR'
- 浏览当前页面的用户的 IP 地址。
- 'REMOTE_HOST'
- 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
- 'REMOTE_PORT'
- 用户机器上连接到 Web 服务器所使用的端口号。
- 'REMOTE_USER'
- 经验证的用户
- 'REDIRECT_REMOTE_USER'
- 验证的用户,如果请求已在内部重定向。
- 'SCRIPT_FILENAME'
-
当前执行脚本的绝对路径
- 'SERVER_ADMIN'
- 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
- 'SERVER_PORT'
- Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
- 'SERVER_SIGNATURE'
- 包含了服务器版本和虚拟主机名的字符串。
- 'PATH_TRANSLATED'
- 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
- 'SCRIPT_NAME'
- 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
- 'REQUEST_URI'
- URI 用来指定要访问的页面。例如 “/index.html”。
- 'PHP_AUTH_DIGEST'
- 当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization” HTTP 头内容(以便作进一步的认证操作)。
- 'PHP_AUTH_USER'
- 当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
- 'PHP_AUTH_PW'
- 当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
- 'AUTH_TYPE'
- 当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
- 'PATH_INFO'
- 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。例如,如果当前脚本是通过 URLhttp://www.example.com/php/path_info.php/some/stuff?foo=bar 被访问,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff。
- 'ORIG_PATH_INFO'
- 在被 PHP 处理之前,“PATH_INFO” 的原始版本。
二、获取HTTP_USER_AGENT
以下方法可获得
<?<span php </span><span echo</span> <span $_SERVER</span>["HTTP_USER_AGENT"<span ]; </span>?>
在iPhone下,返回
Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 <span MicroMessenger</span>/4.3.2
在Android下,返回
Mozilla/5.0 (Linux; U; Android 2.3.6; zh-cn; GT-S5660 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 <span MicroMessenger</span>/4.5.255
可以看到,微信浏览器为 ,后面还有其版本号
与此同时,还可以判断手机类型为iPhone还是Android
三、判断微信浏览器访问
我们判断HTTP_USER_AGENT中是否有MicroMessenger即可
=============================================================
欢迎关注方倍工作室微信,了解我们及行业的最新动态

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Apache Server는 브라우저와 웹 사이트 서버 간의 브리지 역할을하는 강력한 웹 서버 소프트웨어입니다. 1. HTTP 요청을 처리하고 요청에 따라 웹 페이지 컨텐츠를 반환합니다. 2. 모듈 식 디자인은 SSL 암호화 지원 및 동적 웹 페이지와 같은 확장 된 기능을 허용합니다. 3. 보안 취약점을 피하고 고성능 웹 애플리케이션을 구축하기 위해 보안 취약점을 피하고 스레드 카운트 및 타임 아웃 시간과 같은 성능 매개 변수를 최적화하기 위해 구성 파일 (예 : 가상 호스트 구성)을 신중하게 설정해야합니다.

CentOS 시스템 하의 HDFS 파일 시스템에 대한 설치, 구성 및 최적화 안내서이 기사에서는 CentOS 시스템에 HDF (Hadoop Distributed File System)를 설치, 구성 및 최적화하는 방법을 안내합니다. HDFS 설치 및 구성 Java 환경 설치 : 먼저 적절한 Java 환경이 설치되어 있는지 확인하십시오. /etc/profile 파일 편집, 다음을 추가하고 /usr/lib/java-1.8.0/jdk1.8.0_144를 실제 Java 설치 경로로 바꾸십시오 : Exportjava_home =/usr/lib/java-1.8.0/jdk1.8.0_144 exportpath = $ j

일부 애플리케이션이 제대로 작동하지 않는 회사의 보안 소프트웨어에 대한 문제 해결 및 솔루션. 많은 회사들이 내부 네트워크 보안을 보장하기 위해 보안 소프트웨어를 배포 할 것입니다. ...

NGINX 성능 모니터링 및 문제 해결은 주로 다음 단계를 통해 수행됩니다. 1. NGINX-V를 사용하여 버전 정보를보고 STUB_STATUS 모듈을 활성화하여 활성 연결 수, 요청 및 캐시 적중률을 모니터링합니다. 2. 상위 명령을 사용하여 시스템 리소스 점유, Iostat 및 VMSTAT 모니터 디스크 I/O 및 메모리 사용을 모니터링합니다. 3. TCPDUMP를 사용하여 패킷을 캡처하여 네트워크 트래픽을 분석하고 네트워크 연결 문제를 해결합니다. 4. 동시 처리 기능이 충분하지 않거나 과도한 프로세스 컨텍스트 오버 헤드를 피하기 위해 작업자 프로세스 수를 올바르게 구성합니다. 5. 부적절한 캐시 크기 설정을 피하기 위해 Nginx 캐시를 올바르게 구성하십시오. 6. awk 및 grep 명령 또는 elk 사용과 같은 nginx 로그를 분석하여

CRAFTCMS를 사용하여 웹 사이트를 개발할 때 특히 CSS 및 JavaScript 파일을 자주 업데이트 할 때 자주 리소스 파일 캐싱 문제가 발생하면 이전 버전의 파일이 여전히 브라우저에서 캐싱 될 수 있으므로 사용자는 최신 변경 사항을 볼 수 없습니다. 이 문제는 사용자 경험에 영향을 줄뿐만 아니라 개발 및 디버깅의 어려움을 증가시킵니다. 최근에 나는 프로젝트에서 비슷한 문제를 겪었고, 약간의 탐색 후 플러그인 Wiejeben/Craft-Laravel-Mix를 발견하여 캐싱 문제를 완벽하게 해결했습니다.

데비안 시스템에서 HTTPS 서버를 구성하려면 필요한 소프트웨어 설치, SSL 인증서 생성 및 SSL 인증서를 사용하기 위해 웹 서버 (예 : Apache 또는 Nginx)를 구성하는 등 여러 단계가 포함됩니다. 다음은 Apacheweb 서버를 사용하고 있다고 가정하는 기본 안내서입니다. 1. 필요한 소프트웨어를 먼저 설치하고 시스템이 최신 상태인지 확인하고 Apache 및 OpenSSL을 설치하십시오 : Sudoaptupdatesudoaptupgradesudoaptinsta

CentOS 시스템에서 HDFS (Hadoop 분산 파일 시스템)의 상태를 모니터링하는 방법에는 여러 가지가 있습니다. 이 기사는 가장 적합한 솔루션을 선택하는 데 도움이되는 몇 가지 일반적으로 사용되는 방법을 소개합니다. 1. Hadoop의 자체 웹 인터페이스 인 Hadoop의 자체 Webui를 사용하여 클러스터 상태 모니터링 기능을 제공하십시오. 단계 : Hadoop 클러스터가 가동되고 있는지 확인하십시오. webui에 액세스하십시오 : 브라우저에 http : // : 50070 (hadoop2.x) 또는 http : // : 9870 (hadoop3.x)을 입력하십시오. 기본 사용자 이름과 비밀번호는 일반적으로 HDFS/HDF입니다. 2. 명령 줄 도구 모니터링 Hadoop은 모니터링을 용이하게하기위한 일련의 명령 줄 도구를 제공합니다.

데비안 시스템에 gitlab을 설치하는 단계는 다음과 같습니다. 시스템 패키지 업데이트 : Sudoapt-Getupdate 설치 의존성 : sudoapt-getinstall-ycurlopenssh-serverca-certificatestestzdataperl gitlab 공식 저장소 추가 : //packages.gitlab.com/install/reit.
