根据给定的文件信息,我们可以总结出以下几个关键的PHP知识点: ### 1. 获取客户端IP地址 在PHP中,可以通过`$_SERVER`全局数组来获取客户端的IP地址。`$_SERVER`数组包含了诸如脚本位置、请求方法、HTTP头等信息。其中,`HTTP_X_FORWARDED_FOR`、`HTTP_CLIENT_IP`和`REMOTE_ADDR`可以用来获取IP地址。这段代码通过检查这些变量是否存在并返回第一个存在的值作为客户端的IP地址。 ```php function GetIP() { if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) { $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif (isset($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } elseif (isset($_SERVER["REMOTE_ADDR"])) { $ip = $_SERVER["REMOTE_ADDR"]; } elseif (getenv("HTTP_X_FORWARDED_FOR")) { $ip = getenv("HTTP_X_FORWARDED_FOR"); } elseif (getenv("HTTP_CLIENT_IP")) { $ip = getenv("HTTP_CLIENT_IP"); } elseif (getenv("REMOTE_ADDR")) { $ip = getenv("REMOTE_ADDR"); } else { $ip = "Unknown"; } return $ip; } ``` ### 2. 日期操作函数 #### 时间的增加 这段代码提供了一个自定义函数`DateAdd`用于增加日期的时间。它接受一个日期字符串、一个整数和一个单位(默认为天),然后返回一个新的日期字符串。 ```php function DateAdd($date, $int, $unit = "d") { $dateArr = explode("-", $date); $value[$unit] = $int; return date("Y-m-d", mktime(0, 0, 0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y'])); } ``` #### 计算星期几 这个函数`GetWeekDay`接收一个日期字符串,然后返回该日期对应的星期几(数字表示)。 ```php function GetWeekDay($date) { $dateArr = explode("-", $date); return date("w", mktime(0, 0, 0, $dateArr[1], $dateArr[2], $dateArr[0])); } ``` ### 3. 日期和时间验证 #### 验证日期格式 `check_date`函数用于验证日期字符串是否符合`YYYY-MM-DD`的格式,并确保日期是有效的。 ```php function check_date($date) { $dateArr = explode("-", $date); if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) { return checkdate($dateArr[1], $dateArr[2], $dateArr[0]); } return false; } ``` #### 验证时间格式 `check_time`函数用于验证时间字符串是否符合`HH:MM:SS`的格式,并确保时间是有效的。 ```php function check_time($time) { $timeArr = explode(":", $time); if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) { if ($timeArr[0] >= 0 && $timeArr[0] <= 23 && $timeArr[1] >= 0 && $timeArr[1] <= 59 && $timeArr[2] >= 0 && $timeArr[2] <= 59) { return true; } else { return false; } } return false; } ``` #### 日期差值 `DateDiff`函数用于计算两个日期之间的差异,可以返回秒、分钟、小时或天数。 ```php function DateDiff($date1, $date2, $unit = "") { switch ($unit) { case 's': $dividend = 1; break; case 'i': $dividend = 60; break; case 'h': $dividend = 3600; break; case 'd': $dividend = 86400; break; default: $dividend = 86400; } $time1 = strtotime($date1); $time2 = strtotime($date2); if ($time1 && $time2) { return (float)($time1 - $time2) / $dividend; } return false; } ``` ### 4. PHP重定向 在PHP中,可以通过以下两种方式实现页面重定向: - 使用`header()`函数,例如`header("Location:index.php");` - 使用JavaScript的`window.location`属性,例如`echo "<script>window.location=\"index.php\";</script>";` 以上就是从给定的文件信息中提取的关于PHP的几个重要知识点,包括了获取IP地址、日期操作、日期时间验证以及页面重定向等实用功能。
出处:php源码网-开源程序大全(Open Source)
时间:Sat, 17 Nov 2007 10:13:32 +0000
作者:shuguang
地址:http://www.osphp.com.cn/read.php/323.htm
内容:
{downsource}
<?
function GetIP() { //获取IP
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if ($_SERVER["HTTP_CLIENT_IP"])
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if ($_SERVER["REMOTE_ADDR"])
$ip = $_SERVER["REMOTE_ADDR"];
else if (getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else
$ip = "Unknown";
return $ip;
}
?>
{downsource}
<?php
function DateAdd($date, $int, $unit = "d") { //时间的增加(还可以改进成时分秒都可以增加,有时间再补上)
$dateArr = explode("-", $date);
$value[$unit] = $int;
return date("Y-m-d", mktime(0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y']));
}
function GetWeekDay($date) { //计算出给出的日期是星期几
$dateArr = explode("-", $date);
return date("w", mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0]));
}
?>
{downsource}
<?
function check_date($date) { //检查日期是否合法日期
$dateArr = explode("-", $date);
if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {
return checkdate($dateArr[1],$dateArr[2],$dateArr[0]);
}
return false;
}
剩余26页未读,继续阅读
- 粉丝: 0
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip