服务器 频道

PHP 中的一些经验积累

  【IT168 服务器学院】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''>":"";
  

0
相关文章