首頁 >後端開發 >php教程 >PHP高手经验总结

PHP高手经验总结

PHP中文网
PHP中文网原創
2017-03-19 10:24:00866瀏覽

最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!
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(&#39;win&#39;,$Agent) && strpos($Agent, &#39;95&#39;)) { 
$os="Windows 95"; 
} 
elseif (eregi(&#39;win 9x&#39;,$Agent) && strpos($Agent, &#39;4.90&#39;)) { 
$os="Windows ME"; 
} 
elseif (eregi(&#39;win&#39;,$Agent) && ereg(&#39;98&#39;,$Agent)) { 
$os="Windows 98"; 
} 
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt 5\.0&#39;,$Agent)) { 
$os="Windows 2000"; 
} 
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt&#39;,$Agent)) { 
$os="Windows NT"; 
} 
elseif (eregi(&#39;win&#39;,$Agent) && eregi(&#39;nt 5\.1&#39;,$Agent)) { 
$os="Windows XP"; 
} 
elseif (eregi(&#39;win&#39;,$Agent) && ereg(&#39;32&#39;,$Agent)) { 
$os="Windows 32"; 
} 
elseif (eregi(&#39;linux&#39;,$Agent)) { 
$os="Linux\"; 
} 
elseif (eregi(&#39;unix&#39;,$Agent)) { 
$os="Unix"; 
} 
elseif (eregi(&#39;sun&#39;,$Agent) && eregi(&#39;os&#39;,$Agent)) { 
$os="SunOS"; 
} 
elseif (eregi(&#39;ibm&#39;,$Agent) && eregi(&#39;os&#39;,$Agent)) { 
$os="IBM OS/2"; 
} 
elseif (eregi(&#39;Mac&#39;,$Agent) && eregi(&#39;PC&#39;,$Agent)) { 
$os="Macintosh"; 
} 
elseif (eregi(&#39;PowerPC&#39;,$Agent)) { 
$os="PowerPC"; 
} 
elseif (eregi(&#39;AIX&#39;,$Agent)) { 
$os="AIX"; 
} 
elseif (eregi(&#39;HPUX&#39;,$Agent)) { 
$os="HPUX"; 
} 
elseif (eregi(&#39;NetBSD&#39;,$Agent)) { 
$os="NetBSD"; 
} 
elseif (eregi(&#39;BSD&#39;,$Agent)) { 
$os="BSD"; 
} 
elseif (ereg(&#39;OSF1&#39;,$Agent)) { 
$os="OSF1"; 
} 
elseif (ereg(&#39;IRIX&#39;,$Agent)) { 
$os="IRIX"; 
} 
elseif (eregi(&#39;FreeBSD&#39;,$Agent)) { 
$os="FreeBSD\"; 
} 
if ($os==&#39;&#39;) $os = "Unknown"; 
return $os; 
} 
//调用方法$os=os_infor() ;

4、文件格式类

$mime_types = array( 
&#39;gif&#39; => &#39;image/gif&#39;, 
&#39;jpg&#39; => &#39;image/jpeg&#39;, 
&#39;jpeg&#39; => &#39;image/jpeg&#39;, 
&#39;jpe&#39; => &#39;image/jpeg&#39;, 
&#39;bmp&#39; => &#39;image/bmp&#39;, 
&#39;png&#39; => &#39;image/png&#39;, 
&#39;tif&#39; => &#39;image/tiff&#39;, 
&#39;tiff&#39; => &#39;image/tiff&#39;, 
&#39;pict&#39; => &#39;image/x-pict&#39;, 
&#39;pic&#39; => &#39;image/x-pict&#39;, 
&#39;pct&#39; => &#39;image/x-pict&#39;, 
&#39;tif&#39; => &#39;image/tiff&#39;, 
&#39;tiff&#39; => &#39;image/tiff&#39;, 
&#39;psd&#39; => &#39;image/x-photoshop&#39;, 
&#39;swf&#39; => &#39;application/x-shockwave-flash&#39;, 
&#39;js&#39; => &#39;application/x-javascript&#39;, 
&#39;pdf&#39; => &#39;application/pdf&#39;, 
&#39;ps&#39; => &#39;application/postscript&#39;, 
&#39;eps&#39; => &#39;application/postscript&#39;, 
&#39;ai&#39; => &#39;application/postscript&#39;, 
&#39;wmf&#39; => &#39;application/x-msmetafile&#39;, 
&#39;css&#39; => &#39;text/css&#39;, 
&#39;htm&#39; => &#39;text/html&#39;, 
&#39;html&#39; => &#39;text/html&#39;, 
&#39;txt&#39; => &#39;text/plain&#39;, 
&#39;xml&#39; => &#39;text/xml&#39;, 
&#39;wml&#39; => &#39;text/wml&#39;, 
&#39;wbmp&#39; => &#39;image/vnd.wap.wbmp&#39;, 
&#39;mid&#39; => &#39;audio/midi&#39;, 
&#39;wav&#39; => &#39;audio/wav&#39;, 
&#39;mp3&#39; => &#39;audio/mpeg&#39;, 
&#39;mp2&#39; => &#39;audio/mpeg&#39;, 
&#39;avi&#39; => &#39;video/x-msvideo&#39;, 
&#39;mpeg&#39; => &#39;video/mpeg&#39;, 
&#39;mpg&#39; => &#39;video/mpeg&#39;, 
&#39;qt&#39; => &#39;video/quicktime&#39;, 
&#39;mov&#39; => &#39;video/quicktime&#39;, 
&#39;lha&#39; => &#39;application/x-lha&#39;, 
&#39;lzh&#39; => &#39;application/x-lha&#39;, 
&#39;z&#39; => &#39;application/x-compress&#39;, 
&#39;gtar&#39; => &#39;application/x-gtar&#39;, 
&#39;gz&#39; => &#39;application/x-gzip&#39;, 
&#39;gzip&#39; => &#39;application/x-gzip&#39;, 
&#39;tgz&#39; => &#39;application/x-gzip&#39;, 
&#39;tar&#39; => &#39;application/x-tar&#39;, 
&#39;bz2&#39; => &#39;application/bzip2&#39;, 
&#39;zip&#39; => &#39;application/zip&#39;, 
&#39;arj&#39; => &#39;application/x-arj&#39;, 
&#39;rar&#39; => &#39;application/x-rar-compressed&#39;, 
&#39;hqx&#39; => &#39;application/mac-binhex40&#39;, 
&#39;sit&#39; => &#39;application/x-stuffit&#39;, 
&#39;bin&#39; => &#39;application/x-macbinary&#39;, 
&#39;uu&#39; => &#39;text/x-uuencode&#39;, 
&#39;uue&#39; => &#39;text/x-uuencode&#39;, 
&#39;latex&#39;=> &#39;application/x-latex&#39;, 
&#39;ltx&#39; => &#39;application/x-latex&#39;, 
&#39;tcl&#39; => &#39;application/x-tcl&#39;, 
&#39;pgp&#39; => &#39;application/pgp&#39;, 
&#39;asc&#39; => &#39;application/pgp&#39;, 
&#39;exe&#39; => &#39;application/x-msdownload&#39;, 
&#39;doc&#39; => &#39;application/msword&#39;, 
&#39;rtf&#39; => &#39;application/rtf&#39;, 
&#39;xls&#39; => &#39;application/vnd.ms-excel&#39;, 
&#39;ppt&#39; => &#39;application/vnd.ms-powerpoint&#39;, 
&#39;mdb&#39; => &#39;application/x-msaccess&#39;, 
&#39;wri&#39; => &#39;application/x-mswrite&#39;, 
);

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=&#39;../image/newinfor.gif&#39;>":"";

方法二:

$newTag=$db->rows[$i][date]>=date("Y-m-d 00:00:00")?"<img src=&#39;../image/newinfor.gif&#39;>":"";
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn