Discuz教程网

PHP常用函数收藏

[复制链接]
authicon dly 发表于 2011-1-13 18:18:54 | 显示全部楼层 |阅读模式
  1. <?
  2. function GetIP() { //获取IP
  3.     if ($_SERVER["HTTP_X_FORWARDED_FOR"])
  4.         $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];  
  5.     else if ($_SERVER["HTTP_CLIENT_IP"])
  6.         $ip = $_SERVER["HTTP_CLIENT_IP"];
  7.     else if ($_SERVER["REMOTE_ADDR"])
  8.         $ip = $_SERVER["REMOTE_ADDR"];  
  9.     else if (getenv("HTTP_X_FORWARDED_FOR"))
  10.         $ip = getenv("HTTP_X_FORWARDED_FOR");
  11.     else if (getenv("HTTP_CLIENT_IP"))
  12.         $ip = getenv("HTTP_CLIENT_IP");     else if (getenv("REMOTE_ADDR"))
  13.         $ip = getenv("REMOTE_ADDR");
  14.     else
  15.         $ip = "Unknown";
  16.     return $ip;
  17. }
  18. ?>
复制代码


  
  1. <?php
  2. function DateAdd($date, $int, $unit = "d") { //时间的增加(还可以改进成时分秒都可以增加,有时间再补上)
  3.     $dateArr = explode("-", $date);
  4.     $value[$unit] = $int;     return date("Y-m-d", mktime(0,0,0, $dateArr[1] + $value[\'m\'], $dateArr[2] + $value[\'d\'], $dateArr[0] + $value[\'y\']));  
  5. }

  6. function GetWeekDay($date) {  //计算出给出的日期是星期几
  7.     $dateArr = explode("-", $date);
  8.     return date("w", mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0])); }
  9. ?>

复制代码


  1. <?
  2. function check_date($date) { //检查日期是否合法日期
  3.     $dateArr = explode("-", $date);
  4.     if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {  
  5.         return checkdate($dateArr[1],$dateArr[2],$dateArr[0]);
  6.     }
  7.     return false;
  8. }
  9. function check_time($time) {  //检查时间是否合法时间     $timeArr = explode(":", $time);
  10.     if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {  
  11.         if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59))  
  12.             return true;
  13.         else
  14.             return false;
  15.     }
  16.     return false;
  17. }

  18. function DateDiff($date1, $date2, $unit = "") { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天  
  19.     switch ($unit) {
  20.         case \'s\':
  21.             $dividend = 1;
  22.             break;
  23.         case \'i\':
  24.             $dividend = 60;  
  25.             break;
  26.         case \'h\':
  27.             $dividend = 3600;
  28.             break;
  29.         case \'d\':
  30.             $dividend = 86400;
  31.             break;         default:
  32.             $dividend = 86400;
  33.     }
  34.     $time1 = strtotime($date1);
  35.     $time2 = strtotime($date2);
  36.     if ($time1 && $time2)  
  37.         return (float)($time1 - $time2) / $dividend;
  38.     return false;
  39. }

  40. ?>
复制代码




PHP重定向
  1. <?
  2. 方法一:header("Location: index.php");
  3. 方法二:echo "<scrīpt>window.location ="$PHP_SELF";</scrīpt>"; 方法三:echo "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">";

  4. ?>
复制代码




获取访问者浏览器
  1. <?
  2. function browse_infor()
  3. {
  4. $browser="";$browserver="";  
  5. $Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");
  6. $Agent = $GLOBALS["HTTP_USER_AGENT"];
  7. for ($i=0; $i<=7; $i++)

  8. {
  9. if (strpos($Agent,$Browsers[$i]))
  10. {
  11. $browser = $Browsers[$i];
  12. $browserver ="";
  13. }
  14. }
  15. if (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent))  
  16. {
  17. $temp =explode("(", $Agent); $Part=$temp[0];
  18. $temp =explode("/", $Part); $browserver=$temp[1];  
  19. $temp =explode(" ",$browserver); $browserver=$temp[0];
  20. $browserver =preg_replace("/([d.]+)/","1",$browserver);
  21. $browserver = " $browserver"; $browser = "Netscape Navigator";
  22. }
  23. if (ereg("Mozilla",$Agent) && ereg("Opera",$Agent))
  24. {
  25. $temp =explode("(", $Agent); $Part=$temp[1];  
  26. $temp =explode(")", $Part); $browserver=$temp[1];
  27. $temp =explode(" ",$browserver);$browserver=$temp[2];  
  28. $browserver =preg_replace("/([d.]+)/","1",$browserver);
  29. $browserver = " $browserver";
  30. $browser = "Opera";
  31. }
  32. if (ereg("Mozilla",$Agent) && ereg("MSIE",$Agent)) {
  33. $temp = explode("(", $Agent); $Part=$temp[1];
  34. $temp = explode(";",$Part); $Part=$temp[1]; $temp = explode(" ",$Part);$browserver=$temp[2];
  35. $browserver =preg_replace("/([d.]+)/","1",$browserver);
  36. $browserver = " $browserver"; $browser = "Internet Explorer";
  37. }
  38. if ($browser!="")
  39. {
  40. $browseinfo = "$browser$browserver";
  41. }
  42. else
  43. {
  44. $browseinfo = "Unknown";
  45. }
  46. return $browseinfo;
  47. }
  48. //调用方法$browser=browseinfo() ;直接返回结果

  49. ?>
复制代码



获取访问者操作系统
  1. <?
  2. function osinfo() {
  3. $os="";
  4. $Agent = $GLOBALS["HTTP_USER_AGENT"];
  5. if (eregi(\'win\',$Agent) && strpos($Agent, \'95\')) {  
  6. $os="Windows 95";
  7. }
  8. elseif (eregi(\'win 9x\',$Agent) && strpos($Agent, \'4.90\')) {
  9. $os="Windows ME";
  10. }
  11. elseif (eregi(\'win\',$Agent) && ereg(\'98\',$Agent)) {
  12. $os="Windows 98";
  13. }
  14. elseif (eregi(\'win\',$Agent) && eregi(\'nt 5.0\',$Agent)) {
  15. $os="Windows 2000";
  16. }
  17. elseif (eregi(\'win\',$Agent) && eregi(\'nt\',$Agent)) {
  18. $os="Windows NT";
  19. }
  20. elseif (eregi(\'win\',$Agent) && eregi(\'nt 5.1\',$Agent)) {
  21. $os="Windows XP";
  22. }
  23. elseif (eregi(\'win\',$Agent) && ereg(\'32\',$Agent)) {

  24. $os="Windows 32";
  25. }
  26. elseif (eregi(\'linux\',$Agent)) {
  27. $os="Linux";
  28. }
  29. elseif (eregi(\'unix\',$Agent)) {
  30. $os="Unix"; }
  31. elseif (eregi(\'sun\',$Agent) && eregi(\'os\',$Agent)) {
  32. $os="SunOS";
  33. }
  34. elseif (eregi(\'ibm\',$Agent) && eregi(\'os\',$Agent)) {
  35. $os="IBM OS/2";
  36. }
  37. elseif (eregi(\'Mac\',$Agent) && eregi(\'PC\',$Agent)) {
  38. $os="Macintosh";
  39. }
  40. elseif (eregi(\'PowerPC\',$Agent)) {  
  41. $os="PowerPC";
  42. }
  43. elseif (eregi(\'AIX\',$Agent)) {
  44. $os="AIX";
  45. }
  46. elseif (eregi(\'HPUX\',$Agent)) {
  47. $os="HPUX";  
  48. }
  49. elseif (eregi(\'NetBSD\',$Agent)) {
  50. $os="NetBSD";
  51. }
  52. elseif (eregi(\'BSD\',$Agent)) {
  53. $os="BSD";
  54. }
  55. elseif (ereg(\'OSF1\',$Agent)) { $os="OSF1";
  56. }
  57. elseif (ereg(\'IRIX\',$Agent)) {
  58. $os="IRIX";
  59. }
  60. elseif (eregi(\'FreeBSD\',$Agent)) {
  61. $os="FreeBSD";  
  62. }
  63. if ($os==\'\') $os = "Unknown";
  64. return $os;
  65. }
  66. //调用方法$os=os_infor() ;

  67. ?>
复制代码




文件格式类
  1. <?
  2. $mime_types = array(
  3. \'gif\' => \'image/gif\', \'jpg\' => \'image/jpeg\',
  4. \'jpeg\' => \'image/jpeg\',
  5. \'jpe\' => \'image/jpeg\',
  6. \'bmp\' => \'image/bmp\',
  7. \'png\' => \'image/png\',
  8. \'tif\' => \'image/tiff\',  
  9. \'tiff\' => \'image/tiff\',
  10. \'pict\' => \'image/x-pict\',
  11. \'pic\' => \'image/x-pict\',
  12. \'pct\' => \'image/x-pict\',
  13. \'tif\' => \'image/tiff\',
  14. \'tiff\' => \'image/tiff\', \'psd\' => \'image/x-photoshop\',

  15. \'swf\' => \'application/x-shockwave-flash\',
  16. \'js\' => \'application/x-javascrīpt\',
  17. \'pdf\' => \'application/pdf\',
  18. \'ps\' => \'application/postscrīpt\',
  19. \'eps\' => \'application/postscrīpt\',  
  20. \'ai\' => \'application/postscrīpt\',
  21. \'wmf\' => \'application/x-msmetafile\',

  22. \'css\' => \'text/css\',
  23. \'htm\' => \'text/html\',
  24. \'html\' => \'text/html\',
  25. \'txt\' => \'text/plain\',

  26. \'xml\' => \'text/xml\',
  27. \'wml\' => \'text/wml\',
  28. \'wbmp\' => \'image/vnd.wap.wbmp\',

  29. \'mid\' => \'audio/midi\',
  30. \'wav\' => \'audio/wav\',
  31. \'mp3\' => \'audio/mpeg\',  
  32. \'mp2\' => \'audio/mpeg\',

  33. \'avi\' => \'video/x-msvideo\',
  34. \'mpeg\' => \'video/mpeg\',
  35. \'mpg\' => \'video/mpeg\',
  36. \'qt\' => \'video/quicktime\',
  37. \'mov\' => \'video/quicktime\',  

  38. \'lha\' => \'application/x-lha\',
  39. \'lzh\' => \'application/x-lha\',
  40. \'z\' => \'application/x-compress\',
  41. \'gtar\' => \'application/x-gtar\',
  42. \'gz\' => \'application/x-gzip\',
  43. \'gzip\' => \'application/x-gzip\',  
  44. \'tgz\' => \'application/x-gzip\',
  45. \'tar\' => \'application/x-tar\',
  46. \'bz2\' => \'application/bzip2\',
  47. \'zip\' => \'application/zip\',
  48. \'arj\' => \'application/x-arj\',
  49. \'rar\' => \'application/x-rar-compressed\',
  50. \'hqx\' => \'application/mac-binhex40\',
  51. \'sit\' => \'application/x-stuffit\',
  52. \'bin\' => \'application/x-macbinary\',

  53. \'uu\' => \'text/x-uuencode\',
  54. \'uue\' => \'text/x-uuencode\',

  55. \'latex\'=> \'application/x-latex\',  
  56. \'ltx\' => \'application/x-latex\',
  57. \'tcl\' => \'application/x-tcl\',

  58. \'pgp\' => \'application/pgp\',
  59. \'asc\' => \'application/pgp\',
  60. \'exe\' => \'application/x-msdownload\',
  61. \'doc\' => \'application/msword\', \'rtf\' => \'application/rtf\',
  62. \'xls\' => \'application/vnd.ms-excel\',
  63. \'ppt\' => \'application/vnd.ms-powerpoint\',
  64. \'mdb\' => \'application/x-msaccess\',
  65. \'wri\' => \'application/x-mswrite\',
  66. );

  67. ?>
复制代码




php生成excel文档
  1. <?
  2. header("Content-type:application/vnd.ms-excel");
  3. header("Content-Disposition:filename=test.xls");
  4. echo "test1t";
  5. echo "test2tn";
  6. echo "test1t";
  7. echo "test2tn";
  8. echo "test1t"; echo "test2tn";
  9. echo "test1t";
  10. echo "test2tn";
  11. echo "test1t";
  12. echo "test2tn";
  13. echo "test1t";
  14. echo "test2tn";
  15. //改动相应文件头就可以输出.doc .xls等文件格式了

  16. ?>
复制代码




时间比较问题
举一个简单例子说明:比如一个论坛对当天发表的贴子用new图片标记一下。

  1. 方法一:
  2. [code]<?
  3. //$db->rows[$i][date]中为数据库中datetime字段值.
  4. $today=time();
  5. $theDay=date("Y-m-d H:i:s",$today-24*3600);
  6. $newTag=$db->rows[$i][date]>=$theDay?"<img src=\'../image/newinfor.gif\'>":"";

  7. //方法二:
  8. $newTag=$db->rows[$i][date]>=date("Y-m-d 00:00:00")?"<img src=\'../image/newinfor.gif\'>":"";

  9. ?>
复制代码


//提取页面和浏览器提交的变量,作用相当于使PHP.INI开了全局变量
  1. <?
  2. @extract($_SERVER, EXTR_SKIP);
  3. @extract($_SESSION, EXTR_SKIP);
  4. @extract($_POST, EXTR_SKIP);
  5. @extract($_FILES, EXTR_SKIP);

  6. @extract($_GET, EXTR_SKIP);
  7. @extract($_ENV, EXTR_SKIP);

  8. ?>
复制代码


//读取文件函数
  1. <?
  2. function readfromfile($file_name) {
  3. if (file_exists($file_name)) {

  4. $filenum=fopen($file_name,"r");
  5. flock($filenum,LOCK_EX);
  6. $file_data=fread($filenum, filesize($file_name));
  7. rewind($filenum);

  8. fclose($filenum);
  9. return $file_data;
  10. }
  11. }

  12. ?>
复制代码


//写入文件函数
  1. <?
  2. function writetofile($file_name,$data,$method="w") {
  3. $filenum=fopen($file_name,$method);
  4. flock($filenum,LOCK_EX);
  5. $file_data=fwrite($filenum,$data);
  6. fclose($filenum);
  7. return $file_data;
  8. }

  9. ?>
复制代码


//页面快速转向
  1. <?
  2. function turntopage($url="index.php",$info = "页面转向中...",$second=2){
  3. print "<html>n<head>n<title>页面转向中....</title>n";
  4. print "<meta http-equiv="refresh" content="$second;url=$url">n";


  5. print "<style type="text/css">n<!--n";
  6. print "td { font-family: "Verdana", "Arial";font-size: 12px}n";
  7. print "A {COLOR: #000000; TEXT-DECORATION: none}n";
  8. print "-->n</style>n";
  9. print "</head>n<body>n";
  10. print "<table width="100%" border="0" align="center">n";  
  11. print " <tr>n";
  12. print " <td height="200"> </td>n";
  13. print " </tr>n";
  14. print " <tr>n";
  15. print " <td align="center">n";
  16. print " <table width="60%" border="0" cellpadding="8" bgcolor="#AA9FFF">n";
  17. print " <tr>n";
  18. print " <td height="30" align="center">页面转向提示信息</td>n";
  19. print " </tr>n";
  20. print " <tr>n";
  21. print " <td align="center">$info</td>n";
  22. print " </tr>n";
  23. print " <tr>n";
  24. print " <td align="center">n";
  25. print " <a href="$url">如果你的浏览器不支持自动跳转,请按这里</a></td>n";
  26. print " </tr>n";
  27. print " </tr>n";
  28. print " </table></td>n";
  29. print " </tr>n";
  30. print " <tr>n";  
  31. print " <td height="200"> </td>n";
  32. print " </tr>n";
  33. print "</table>n";
  34. print "</body>n</html>";
  35. exit;
  36. ?>
复制代码




上一篇:Mysql开启日志
下一篇:php算开始时间到过期时间的相隔的天数
authicon YNKAZUKI 发表于 2011-6-16 18:59:48 | 显示全部楼层
感谢分享  收下了·····
authicon 皆无 发表于 2011-6-17 14:00:08 | 显示全部楼层
不错,谢谢分享
authicon 82xiaochong911 发表于 2011-6-17 17:00:06 | 显示全部楼层
哈哈,支持了
authicon icenna 发表于 2011-6-18 10:59:55 | 显示全部楼层
好像不错的样子
authicon mjz 发表于 2011-6-18 14:59:45 | 显示全部楼层
这个不错呀
authicon huanglv80 发表于 2011-6-22 18:00:36 | 显示全部楼层
顶你一下,好贴要顶!
authicon 暗夜的烟火 发表于 2011-6-27 22:00:26 | 显示全部楼层
哈哈,支持了
authicon YNKAZUKI 发表于 2011-8-10 02:59:43 | 显示全部楼层
不错,谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 23:22

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表