PHP 中的一些经验积累

2018-09-07 12:00

阅读:519

  作者:snowai

  最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!
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() ;

  

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-msaccess,
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中对数据库操作的封装
我的例子.........见本文附件!

  
相关附件:PHP中对数据库操作的封装的例子


评论


亲,登录后才可以留言!