热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux大“虾”谈:PHP中的一些经验积累

文章标题:Linux大“虾”谈:PHP中的一些经验积累。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!
  1、关于PHP重定向
  方法一:header("Location: index.php");
  方法二:echo "";
  方法三:echo "";
  
  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?"":"";
  方法二:
  $newTag=$db->rows[$i][date]>=date("Y-m-d 00:00:00")?"":"";
  
  
推荐阅读
  • 解决fetch上传图片至微信公众号H5页面的问题
    在近期的一个项目需求中,需要在微信公众号内嵌入H5页面,并实现用户通过该页面上传图片的功能,包括拍摄新照片或从已有相册中选择。前端开发中采用了fetch API进行接口调用,但遇到了上传图片时数据无法正确传递的问题。 ... [详细]
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • Linux 文件系统结构详解
    本文详细介绍了Linux操作系统的文件系统结构,包括其独特的树状目录体系、根目录的作用、目录与磁盘分区的关系等,并对各主要目录的功能进行了深入解析。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 本文详细介绍了如何在VMware环境下安装CentOS 7 Minimal,并成功配置GNOME桌面环境的过程。包括解决网络连接问题和设置默认图形界面等关键步骤。 ... [详细]
  • Python作为一种广泛使用的高级编程语言,以其简洁的语法、强大的功能和丰富的库支持著称。本文将详细介绍Python的主要特点及其在现代软件开发中的应用。 ... [详细]
  • 基于函数实现的进制转换工具
    本文介绍了一种利用函数实现不同进制数(二进制、八进制、十进制)之间转换的方法。包括了程序的运行效果展示、所使用的主要函数解析、以及如何验证用户输入的合法性。整个项目仅使用了两个全局变量来存储用户的选项和输入的数值。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • 本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ... [详细]
  • SQL注入实验:SqliLabs第38至45关解析
    本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ... [详细]
  • 如何将Redis配置为后台服务
    本文介绍了在安装Redis后,如何通过修改配置文件使其以守护进程模式在后台运行,避免因控制台被占用而无法进行其他操作的问题。 ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
  • 本文探讨了使用Lighttpd与FastCGI实现分布式部署的方法。通过在中心服务器上配置Lighttpd负责请求转发,同时在多个远程服务器上运行FastCGI进程来处理实际业务逻辑,从而提高系统的负载能力和响应速度。 ... [详细]
  • 盐池元宵夜色
    盐池县的元宵之夜灯火辉煌,各式各样的灯笼装饰着小镇,营造出浓厚的节日气氛。九曲民俗文化园的新建成为了节日的一大亮点,不仅展示了丰富的传统文化,也为游客提供了独特的体验。 ... [详细]
author-avatar
什锦平
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有