PHP 中的一些经验积累

发表于:2007-07-01来源:作者:点击数: 标签:
最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家! 1、关于PHP重定向 方法一:header(Location: index.php); 方法二:echo scriptwindow.location =\$PHP_SELF\;/script; 方法三:echo META HTTP-EQUIV=\Refresh\ CONTENT=\0; URL=i
最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!
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 = "Inte.net 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() ;


4、文件格式类
$mime_types = array(
@#gif@# => @#image/gif@#,
@#jpg@# => @#image/jpeg@#,
@#jpeg@# => @#image/jpeg@#,
@#jpe@# => @#image/jpeg@#,
@#bmp@# => @#image/bmp@#,
@#png@# => @#image/png@#,
@#tif@# => @#image/tiff@#,
@#tiff@# => @#image/tiff@#,
@#pict@# => @#image/x-pict@#,
@#pic@# => @#image/x-pict@#,
@#pct@# => @#image/x-pict@#,
@#tif@# => @#image/tiff@#,
@#tiff@# => @#image/tiff@#,
@#psd@# => @#image/x-photoshop@#,

@#swf@# => @#application/x-shockwave-flash@#,
@#js@# => @#application/x-javascript@#,
@#pdf@# => @#application/pdf@#,
@#ps@# => @#application/postscript@#,
@#eps@# => @#application/postscript@#,
@#ai@# => @#application/postscript@#,
@#wmf@# => @#application/x-msmetafile@#,

@#css@# => @#text/css@#,
@#htm@# => @#text/html@#,
@#html@# => @#text/html@#,
@#txt@# => @#text/plain@#,
@#xml@# => @#text/xml@#,
@#wml@# => @#text/wml@#,
@#wbmp@# => @#image/vnd.wap.wbmp@#,

@#mid@# => @#audio/midi@#,
@#wav@# => @#audio/wav@#,
@#mp3@# => @#audio/mpeg@#,
@#mp2@# => @#audio/mpeg@#,

@#avi@# => @#video/x-msvideo@#,
@#mpeg@# => @#video/mpeg@#,
@#mpg@# => @#video/mpeg@#,
@#qt@# => @#video/quicktime@#,
@#mov@# => @#video/quicktime@#,

@#lha@# => @#application/x-lha@#,
@#lzh@# => @#application/x-lha@#,
@#z@# => @#application/x-compress@#,
@#gtar@# => @#application/x-gtar@#,
@#gz@# => @#application/x-gzip@#,
@#gzip@# => @#application/x-gzip@#,
@#tgz@# => @#application/x-gzip@#,
@#tar@# => @#application/x-tar@#,
@#bz2@# => @#application/bzip2@#,
@#zip@# => @#application/zip@#,
@#arj@# => @#application/x-arj@#,
@#rar@# => @#application/x-rar-compressed@#,

@#hqx@# => @#application/mac-binhex40@#,
@#sit@# => @#application/x-stuffit@#,
@#bin@# => @#application/x-macbinary@#,

@#uu@# => @#text/x-uuencode@#,
@#uue@# => @#text/x-uuencode@#,

@#latex@#=> @#application/x-latex@#,
@#ltx@# => @#application/x-latex@#,
@#tcl@# => @#application/x-tcl@#,

@#pgp@# => @#application/pgp@#,
@#asc@# => @#application/pgp@#,
@#exe@# => @#application/x-msdownload@#,
@#doc@# => @#application/msword@#,
@#rtf@# => @#application/rtf@#,
@#xls@# => @#application/vnd.ms-excel@#,
@#ppt@# => @#application/vnd.ms-powerpoint@#,
@#mdb@# => @#application/x-msaclearcase/" target="_blank" >ccess@#,
@#wri@# => @#application/x-mswrite@#,
);

5、php生成excel文档
<?
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
echo "test1\t";
echo "test2\t\n";
?>
//改动相应文件头就可以输出.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@#>":"";
7、PHP中对数据库操作的封装
我的例子.........见本文附件!

原文转自:http://www.ltesting.net