收集的几条php经验
2005-12-12  作者:amao  同分类文章
description:

1.关于PHP重定向   2、获取访问者浏览器 3、获取访问者操作系统 5、php生成excel文档 6、时间比较问题

1.关于PHP重定向
方法一:header("Location: index.php");
方法二:echo "<script>window.location ="$PHP_SELF";</script>";
方法三:echo "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">";

2、获取访问者浏览器
function browse_infor() 

$browser="";$browserver=""
$Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb"); 
$Agent $GLOBALS["HTTP_USER_AGENT"]; 
for (
$i=0$i<=7$i++) 

if (
strpos($Agent,$Browsers[$i])) 

$browser $Browsers[$i]; 
$browserver =""


if (
ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent)) 

$temp =explode("("$Agent); $Part=$temp[0]; 
$temp =explode("/"$Part); $browserver=$temp[1]; 
$temp =explode(" ",$browserver); $browserver=$temp[0]; 
$browserver =preg_replace("/([d.]+)/","1",$browserver); 
$browserver " $browserver"
$browser "Netscape Navigator"

if (
ereg("Mozilla",$Agent) && ereg("Opera",$Agent)) 

$temp =explode("("$Agent); $Part=$temp[1]; 
$temp =explode(")"$Part); $browserver=$temp[1]; 
$temp =explode(" ",$browserver);$browserver=$temp[2]; 
$browserver =preg_replace("/([d.]+)/","1",$browserver); 
$browserver " $browserver"
$browser "Opera"

if (
ereg("Mozilla",$Agent) && ereg("MSIE",$Agent)) 

$temp explode("("$Agent); $Part=$temp[1]; 
$temp explode(";",$Part); $Part=$temp[1]; 
$temp explode(" ",$Part);$browserver=$temp[2]; 
$browserver =preg_replace("/([d.]+)/","1",$browserver); 
$browserver " $browserver"
$browser "Internet Explorer"

if (
$browser!=""

$browseinfo "$browser$browserver"

else 

$browseinfo "Unknown"

return 
$browseinfo

//调用方法$browser=browseinfo() ;直接返回结果 
3、获取访问者操作系统
function osinfo() { 
$os=""
$Agent $GLOBALS["HTTP_USER_AGENT"]; 
if (
eregi('win',$Agent) && strpos($Agent'95')) { 
$os="Windows 95"

elseif (
eregi('win 9x',$Agent) && strpos($Agent'4.90')) { 
$os="Windows ME"

elseif (
eregi('win',$Agent) && ereg('98',$Agent)) { 
$os="Windows 98"

elseif (
eregi('win',$Agent) && eregi('nt 5.0',$Agent)) { 
$os="Windows 2000"

elseif (
eregi('win',$Agent) && eregi('nt',$Agent)) { 
$os="Windows NT"

elseif (
eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { 
$os="Windows XP"

elseif (
eregi('win',$Agent) && ereg('32',$Agent)) { 
$os="Windows 32"

elseif (
eregi('linux',$Agent)) { 
$os="Linux"

elseif (
eregi('unix',$Agent)) { 
$os="Unix"

elseif (
eregi('sun',$Agent) && eregi('os',$Agent)) { 
$os="SunOS"

elseif (
eregi('ibm',$Agent) && eregi('os',$Agent)) { 
$os="IBM OS/2"

elseif (
eregi('Mac',$Agent) && eregi('PC',$Agent)) { 
$os="Macintosh"

elseif (
eregi('PowerPC',$Agent)) { 
$os="PowerPC"

elseif (
eregi('AIX',$Agent)) { 
$os="AIX"

elseif (
eregi('HPUX',$Agent)) { 
$os="HPUX"

elseif (
eregi('NetBSD',$Agent)) { 
$os="NetBSD"

elseif (
eregi('BSD',$Agent)) { 
$os="BSD"

elseif (
ereg('OSF1',$Agent)) { 
$os="OSF1"

elseif (
ereg('IRIX',$Agent)) { 
$os="IRIX"

elseif (
eregi('FreeBSD',$Agent)) { 
$os="FreeBSD"

if (
$os==''$os "Unknown"
return 
$os

//调用方法$os=os_infor() ;

5、php生成excel文档

<? 
header
("Content-type:application/vnd.ms-excel"); 
header("Content-Disposition:filename=test.xls"); 
echo 
"test1 "
echo 
"test2 "
echo 
"test1 "
echo 
"test2 "
echo 
"test1 "
echo 
"test2 "
echo 
"test1 "
echo 
"test2 "
echo 
"test1 "
echo 
"test2 "
echo 
"test1 "
echo 
"test2 "
?>

//改动相应文件头就可以输出.doc .xls等文件格式了
6、时间比较问题
举一个简单例子说明:比如一个论坛对当天发表的贴子用new图片标记一下。
方法一:

//$db->rows[$i][date]中为数据库中datetime字段值. 
$today=time(); 
$theDay=date("Y-m-d H:i:s",$today-24*3600); 
$newTag=$db->rows[$i][date]>=$theDay?"<img src='../image/newinfor.gif'>":""
方法二
$newTag=$db->rows[$i][date]>=date("Y-m-d 00:00:00")?"<img src='../image/newinfor.gif'>":""



相关
php的报表(图表)工具
免费的sftp上传工具 :PSFTP
读取NFO信息的php代码。
fastcgi mysql_pconnect 数据库持续链接
php 生成 PDF 文件
MySQL多表操作和备份处理
将html中大写标签全部变成小写
PHP永动机
通过fishbone这个项目新的东西
字符串的第几个字母