content top

PHP获取用户的浏览器 操作系统信息

PHP为了准确获得访问用户的浏览器 操作系统信息,以便返回给不同的用户不同的需求,比如不同的IE用户,分别加载不同的CSS文件

1.用户访问服务器时,利用PHP的超级全局变量$_SERVER数组中字段['HTTP_USER_AGENT'] 获取访问用户的所有信息

我访问时的$_SERVER['HTTP_USER_AGENT'] 字符串 :

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2

2.利用正则表达式匹配以上字符串,用户的浏览器 操作系统信息

3.PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS文件,JS等等…返回给用户

我的浏览器 操作系统信息

Browser: Chrome 5.0

Platform: Windows 7

代码如下:

 

PHP使用zlib扩展实现页面GZIP压缩输出

GZIP(GNU-ZIP)是一种压缩技术。经过GZIP压缩后页面大小可以变为原来的30%甚至更小。这样用户浏览的时候就会感觉很爽很愉快!
要实现GZIP压缩页面需要浏览器和服务器共同支持,实际上就是服务器压缩,传到浏览器后浏览器解压并解析。浏览器那边不需要我们担心,因为现在绝大多数浏览器都支持解析GZIP过的页面。我们只要把页面在服务器端压缩再输出到浏览器就行了。

要压缩一个页面,首先要获得要输出的内容。PHP中的ob_start()(ob => output buffer)函数可以实现这个功能,它可以把程序里准备输出的内容先放到一个叫做“缓冲区”的地方,这个函数一定要在页面输出之前使用,所以一般把它放在代码的最顶端。用ob_start()得到要压缩的页面之后,我们就可以压缩页面了!

 

PHP内置函数intval()使用不当的安全漏洞分析

一、描述

intval函数有个特性:”直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时()结束转换”,在某些应用程序里由于对intval函数这个特性认识不够,错误的使用导致绕过一些安全判断导致安全漏洞.

二、分析

PHP_FUNCTION(intval)

{

zval **num, **arg_base;

int base;

 

PHP cURL快速入门

cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。更让人高兴的是,PHP也支持 cURL 库。本文将介绍PHP中如何运用它。

基本结构

先来看一下在PHP中建立cURL请求的基本步骤:

  1. 初始化
  2. 设置变量
  3. 执行并获取结果
  4. 释放cURL句柄

// 1. 初始化

$ch = curl_init();

// 2. 设置选项,包括URL

curl_setopt($ch, CURLOPT_URL, “http://www.nettuts.com”);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

// 3. 执行并获取HTML文档内容

$output = curl_exec($ch);

// 4. 释放curl句柄

curl_close($ch);

 

PHP 全局变量global详解

开发一个PHP程序,不可避免的要使用到全局数据.

全局变量便是其中之一,当然这个观点颇具争议,有许多人还是建议禁用全局变量,使用不当对造成程序的可读性很差!结构混乱,调试更是一头雾水,但是不可否认他的便捷,这便是php为什么会用全局变量global原因吧!…

今天就遇到了php 全局变量不起作用的问题.

先上一段简单的代码:

<?php
$a = 0 ;
function Test()
{
$a =1;
}
Test();
echo $a;
?>

上面的代码中输出是0,那是因为函数体Test内$a变量被缺省设置为局部变量,$a的作用域就是在Test内.修改代码如下

<?php
$a = 0 ;
function Test()
{
 global $a;//申明函数体Test内使用的$a变量为global全局变量
 $a =1;
}
Test();
echo $a;
?>
 

PHP获取URL完整路径及物理路径

PHP的预定义变量$_SERVER是一个包含头部(headers),路径信息及脚本位置的数组,数组的实体由web服务器创建.

利用$_SERVER数组,我们可以获取URL完整路径及真实路径,让自己随心所欲的运用它们.

$_SERVER['SERVER_NAME'] // 当前运行脚本所在服务器主机的名称.

$_SERVER[SERVER_PORT'] //用户连接到服务器时所使用的端口.

 $_SERVER['REQUEST_URI'] //当前运行脚本除主机名外的请求URL.

$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录.

举例 URL : http://www.cndong.cn/Test/Test.php

$_SERVER['SERVER_NAME']:  www.cndong.cn

$_SERVER['SERVER_PORT'] : 80

$_SERVER['REQUEST_URI'] : /Test/Test.php

$_SERVER['DOCUMENT_ROOT'] : /home/var/www/cndong.cn/htdocs

 
Page 1 of 212
content top