Home >Backend Development >PHP Tutorial >PHP高手经验总结

PHP高手经验总结

PHP中文网
PHP中文网Original
2017-03-19 10:24:00866browse

最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!
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;>":"";
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:PHP 6安装方法Next article:PHP远程关机操作的代码