<?
function GetIP () {
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" ))
else
$ip = "Unknown" ;
return $ip ;
}
?>
=============================================================================
//时间的增加(还可以改进成时分秒都可以增加,有时间再补上)
<?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 ])); //OSPHP.COm.CN
}
?>
=============================================================================
<?
function check_date ( $date ) { //检查日期是否合法日期
$dateArr = explode ( "-" , $date );
if ( is_numeric ( $dateArr [ 0 ]) && is_numeric ( $dateArr [ 1 ]) && is_numeric ( $dateArr [ 2 ])) { //开源代码OSPhP.COm.CN
return checkdate ( $dateArr [ 1 ], $dateArr [ 2 ], $dateArr [ 0 ]);
}
return false ;
}
function check_time ( $time ) { //检查时间是否合法时间
if ( is_numeric ( $timeArr [ 0 ]) && is_numeric ( $timeArr [ 1 ]) && is_numeric ( $timeArr [ 2 ])) { //OSPHP.COm.CN
if (( $timeArr [ 0 ] >= 0 && $timeArr [ 0 ] <= 23 ) && ( $timeArr [ 1 ] >= 0 && $timeArr [ 1 ] <= 59 ) && ( $timeArr [ 2 ] >= 0 && $timeArr [ 2 ] <= 59 )) //OSPHP.COM.Cn开源
return true ;
else
return false ;
}
return false ;
}
function DateDiff ( $date1 , $date2 , $unit = "" ) { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天 //开源OSPhP.COM.CN
switch ( $unit ) {
case 's' :
$dividend = 1 ;
break;
case 'i' :
$dividend = 60 ; //开源代码OSPhP.COm.CN
break;
case 'h' :
$dividend = 3600 ;
break;
case 'd' :
$dividend = 86400 ;
break; //oSPHP.COM.CN
default:
$dividend = 86400 ;
}
$time1 = strtotime ( $date1 );
$time2 = strtotime ( $date2 );
if ( $time1 && $time2 ) //开源代码OSPhP.COm.CN
return (float)( $time1 - $time2 ) / $dividend ;
return false ;
}
?>
==============================================================================
//PHP重定向
<?
方法一:header("Location: index.php");
方法二:echo "<scrīpt>window.location ="$PHP_SELF";</scrīpt>";
方法三:echo "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">";
?>
==============================================================================
//获取访问者浏览器
<?
function browse_infor ()
{
$browser = "" ; $browserver = "" ; //oSPHP.COM.CN
$Browsers =array( "Lynx" , "MOSAIC" , "AOL" , "Opera" , "JAVA" , "MacWeb" , "WebExplorer" , "OmniWeb" );
$Agent = $GLOBALS [ "HTTP_USER_AGENT" ];
for ( $i = 0 ; $i <= 7 ; $i ++) //oSPHP.COM.CN
{
if ( strpos ( $Agent , $Browsers [ $i ]))
{
$browser = $Browsers [ $i ];
$browserver = "" ;
}
}
if ( ereg ( "Mozilla" , $Agent ) && ! ereg ( "MSIE" , $Agent ))
{
$temp = explode ( "/" , $Part ); $browserver = $temp [ 1 ];
$browserver = preg_replace ( "/([d.]+)/" , "1" , $browserver );
$browserver = " $browserver" ; //OSPHP.COm.CN
$browser = "Netscape Navigator" ;
}
if ( ereg ( "Mozilla" , $Agent ) && ereg ( "Opera" , $Agent ))
{
$temp = explode ( "(" , $Agent ); $Part = $temp [ 1 ]; //开源代码OSPhP.COm.CN
$temp = explode ( ")" , $Part ); $browserver = $temp [ 1 ];
$temp = explode ( " " , $browserver ); $browserver = $temp [ 2 ];
$browserver = " $browserver" ;
$browser = "Opera" ;
}
if ( ereg ( "Mozilla" , $Agent ) && ereg ( "MSIE" , $Agent ))
{
$temp = explode ( ";" , $Part ); $Part = $temp [ 1 ]; //OsPHP.COM.CN
$temp = explode ( " " , $Part ); $browserver = $temp [ 2 ];
$browserver = preg_replace ( "/([d.]+)/" , "1" , $browserver );
$browserver = " $browserver" ; //oSPHP.COM.CN
$browser = "Internet Explorer" ;
}
if ( $browser != "" )
{
$browseinfo = "$browser$browserver" ;
}
else
{
$browseinfo = "Unknown" ;
}
return $browseinfo ;
}
//调用方法$browser=browseinfo() ;直接返回结果
?>
================================================================================
获取访问者操作系统
<?
function osinfo() {
$os="";
$Agent = $GLOBALS["HTTP_USER_AGENT"];
if (eregi('win',$Agent) && strpos($Agent, '95')) {
}
elseif ( eregi ( 'win 9x' , $Agent ) && strpos ( $Agent , '4.90' )) {
$os = "Windows ME" ;
}
elseif ( eregi ( 'win' , $Agent ) && ereg ( '98' , $Agent )) {
}
elseif ( eregi ( 'win' , $Agent ) && eregi ( 'nt 5.0' , $Agent )) {
$os = "Windows 2000" ;
}
elseif ( eregi ( 'win' , $Agent ) && eregi ( 'nt' , $Agent )) {
}
elseif ( eregi ( 'win' , $Agent ) && eregi ( 'nt 5.1' , $Agent )) {
$os = "Windows XP" ;
}
elseif ( eregi ( 'win' , $Agent ) && ereg ( '32' , $Agent )) {
}
elseif ( eregi ( 'linux' , $Agent )) {
$os = "Linux" ;
}
elseif ( eregi ( 'unix' , $Agent )) {
$os = "Unix" ;
}
elseif (
$os = "SunOS" ;
}
elseif ( eregi ( 'ibm' , $Agent ) && eregi ( 'os' , $Agent )) { //PHP开源代码
$os = "IBM OS/2" ;
}
elseif ( eregi ( 'Mac' , $Agent ) && eregi ( 'PC' , $Agent )) {
$os = "Macintosh" ;
}
elseif ( eregi ( 'PowerPC' , $Agent )) { //OSPHP.com.CN
$os = "PowerPC" ;
}
elseif ( eregi ( 'AIX' , $Agent )) {
$os = "AIX" ;
}
elseif ( eregi ( 'HPUX' , $Agent )) {
$os = "HPUX" ; //OsPHP.COM.CN
}
elseif ( eregi ( 'NetBSD' , $Agent )) {
$os = "NetBSD" ;
}
elseif ( eregi ( 'BSD' , $Agent )) {
$os = "BSD" ;
}
elseif ( ereg ( 'OSF1' , $Agent )) {
}
elseif ( ereg ( 'IRIX' , $Agent )) {
$os = "IRIX" ;
}
elseif ( eregi ( 'FreeBSD' , $Agent )) {
$os = "FreeBSD" ;
}
if (
return $os ;
}
//调用方法$os=os_infor() ;
?>
===============================================================================
//文件格式类
<?
$mime_types = array(
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',
'png' => 'image/png',
'tif' => 'image/tiff', //OSPHP.com.CN
'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-javascrīpt',
'pdf' => 'application/pdf',
'ps' => 'application/postscrīpt',
'eps' => 'application/postscrīpt',
'ai' => 'application/postscrīpt',
'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', //oSPHP.COM.CN
'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',
);
?>
===============================================================================
php生成excel文档
<?
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
//改动相应文件头就可以输出.doc .xls等文件格式了
?>
==============================================================================
时间比较问题
举一个简单例子说明:比如一个论坛对当天发表的贴子用new图片标记一下。 //OSPHP.COM.Cn开源
方法一:
<?
//$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'>":"";
?>
===============================================================================
//提取页面和浏览器提交的变量,作用相当于使PHP.INI开了全局变量
<?
@extract($_SERVER, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
?>
==============================================================================
//读取文件函数
<?
function readfromfile($file_name) {
if (file_exists($file_name)) { //OSPHP.COM.Cn开源
$filenum=fopen($file_name,"r");
flock($filenum,LOCK_EX);
$file_data=fread($filenum, filesize($file_name));
rewind($filenum);
fclose($filenum);
return $file_data;
}
}
?>
===============================================================================
//写入文件函数
<?
function writetofile($file_name,$data,$method="w") {
$filenum=fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
?>
==============================================================================
//页面快速转向
<?
function turntopage($url="index.php",$info = "页面转向中...",$second=2){
print "<html>n<head>n<title>页面转向中....</title>n";
print "<meta http-equiv="refresh" content="$second;url=$url">n"; //开源代码OSPHP.COM.Cn
print "<style type="text/css">n<!--n";
print "td { font-family: "Verdana", "Arial";font-size: 12px}n";
print "A {COLOR: #000000; TEXT-DECORATION: none}n";
print "-->n</style>n";
print "</head>n<body>n";
print "<table width="100%" border="0" align="center">n";
print
print " <td height=" 200 "> </td>n" ;
print " </tr>n" ;
print " <tr>n" ;
print " <td align=" center ">n" ;
print " <table width=" 60 % " border=" 0 " cellpadding=" 8 " bgcolor=" #AA9FFF">n";
print " <td height=" 30 " align=" center ">页面转向提示信息</td>n" ;
print " </tr>n" ;
print " <tr>n" ;
print " <td align=" center ">$info</td>n" ;
print " </tr>n" ;
print " <tr>n" ;
print
print " <a href=" $url ">如果你的浏览器不支持自动跳转,请按这里</a></td>n" ;
print " </tr>n" ;
print " </tr>n" ;
print " </table></td>n" ;
print " </tr>n" ;
print " <tr>n" ; //开源代码OSPhP.COm.CN
print " <td height=" 200 "> </td>n" ;
print " </tr>n" ;
print "</table>n" ;
print "</body>n</html>" ;
exit;
?>
===============================================================================
产生随机字符串函数
<?
function random($length) {
$hash = @#@#;
$chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#;
$max = strlen($chars) - 1;
for( $i = 0 ; $i < $length ; $i ++) {
$hash .= $chars [ mt_rand ( 0 , $max )];
}
return
}
?>
==============================================================================
截取一定长度的字符串(该函数对GB2312使用有效)
<?
function Wordscut($string, $length ,$sss=0) {
if(strlen($string) > $length) { //OSPHP.com.CN
if($sss){
$length=$length - 3;
$addstr=@# ...@#;
}
for($i = 0; $i < $length; $i++) {
if(
$wordscut .= $string [ $i ]. $string [ $i + 1 ];
$i ++;
} else {
$wordscut .= $string [ $i ];
}
}
return $wordscut . $addstr ;
}
return $string ;
}
?>
===============================================================================
取得客户端IP地址
<?
function GetIP (){
if ( getenv ( "HTTP_CLIENT_IP" ) && strcasecmp ( getenv ( "HTTP_CLIENT_IP" ), "unknown" ))
$ip = getenv ( "HTTP_CLIENT_IP" );
else if ( getenv ( "HTTP_X_FORWARDED_FOR" ) && strcasecmp ( getenv ( "HTTP_X_FORWARDED_FOR" ), "unknown" ))
else if ( getenv ( "REMOTE_ADDR" ) && strcasecmp ( getenv ( "REMOTE_ADDR" ), "unknown" ))
$ip = getenv ( "REMOTE_ADDR" );
else if (isset( $_SERVER [@ #REMOTE_ADDR@#]) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER[@#REMOTE_ADDR@#], "unknown"))
$ip = $_SERVER [@ #REMOTE_ADDR@#];
else
$ip = "unknown" ;
return(
}
?>
===============================================================================
判断邮箱地址
<?
function checkEmail ( $inAddress )
{
return ( ereg ( "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+" , $inAddress ));
}
?>
================================================================================
分页(两个函数配合使用)
<?
function getpage($sql,$page_size=20)
{
global $page,$totalpage,$sums; //out param
$page = $_GET["page"];
//$eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "select count(*) as ids ".$pagesql;
$result = mysql_query($pagesql);
if(
$totalpage = ceil ( $sums / $page_size );
if((! $page )( $page < 1 )) $page = 1 ;
$startpos = ( $page - 1 )* $page_size ;
$sql .= " limit $startpos,$page_size " ;
return $sql ;
}
function showbar ( $string = "" )
{
global $page , $totalpage ;
//PHP开源代码
$linkNum = 4 ;
$start = ( $page - round ( $linkNum / 2 ))> 0 ? ( $page - round ( $linkNum / 2 )) : "1" ;
$prestart = $start - 1 ;
if( $page <> 1 )
$out .= "<a href=@#?page=1&&" . $string . "@#title=第一页>第一页</a> " ;
if( $start > 1 )
for( $t = $start ; $t <= $end ; $t ++)
{
$out .= ( $page == $t ) ? "<font [" . $t . "]color=@#red@#><b>[" . $t . "]</b></font> " : "<a $thref=@#?page=$t&&" . $string . "@#>$t</a> " ;
}
if(
$out .= "<a href=@#?page=" . $nextend . "&&" . $string . "@# title=下一页>>>..</a>" ;
if( $page <> $totalpage )
$out .= " <a href=@#?page=" . $totalpage . "&&" . $string . "@# title=最后页>最后页</a>" ; //PHP开源代码
return $out ;
}
?>
===============================================================================
获取新插入数据的ID
<?
mysql_insert_id ();
?>
===============================================================================
//获得当前的脚本网址
<?
function get_php_url (){
if(!empty( $_server [ "REQUEST_URI" ])){ //oSPHP.COM.CN
$scriptName = $_SERVER [ "REQUEST_URI" ];
$nowurl = $scriptName ;
}else{
$scriptName = $_SERVER [ "PHP_SELF" ];
if(empty( $_SERVER [ "QUERY_STRING" ])) $nowurl = $scriptName ;
else $nowurl = $scriptName . "?" . $_SERVER [ "QUERY_STRING" ];
}
return
}
?>
===============================================================================
//把全角数字转为半角数字
<?
function GetAlabNum ( $fnum ){
$nums = array( "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" );
for( $i = 0 ; $i <= 9 ; $i ++) $fnum = str_replace ( $nums [ $i ], $fnums [ $i ], $fnum );
$fnum = ereg_replace ( "[^0-9.]|^0{1,}" , "" , $fnum );
if( $fnum == "" ) $fnum = 0 ;
return $fnum ;
}
?>
//去除HTML标记
<?
function Text2Html ( $txt ){
$txt = str_replace ( " " , " " , $txt );
$txt = str_replace ( "<" , "<" , $txt );
$txt = str_replace ( ">" , ">" , $txt );
$txt = preg_replace ( "/[rn]{1,}/isU" , "
rn" , $txt );
return $txt ;
}
?>
===============================================================================
//相对路径转化成绝对路径
<?
function relative_to_absolute($content, $feed_url) {
preg_match('/(http|https|ftp):///', $feed_url, $protocol);
$server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url);
$server_url = preg_replace ( "//.*/" , "" , $server_url );
if ( $server_url == '' ) {
return $content ;
}
if (isset( $protocol [ 0 ])) {
$new_content = preg_replace ( '/href="//' , 'href="' . $protocol [ 0 ]. $server_url . '/' , $content );
$new_content = preg_replace ( '/src="//' , 'src="' . $protocol [ 0 ]. $server_url . '/' , $new_content ); //OSPHP.COm.CN
} else {
$new_content = $content ;
}
return $new_content ;
}
?>
==============================================================================
//取得所有链接
<?
function get_all_url($code){
preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr); //开源代码OSPHP.COM.Cn
return array('name'=>$arr[2],'url'=>$arr[1]);
}
?>
==============================================================================
//HTML表格的每行转为CSV格式数组
<?
function get_tr_array($table) { //OSPHP.COm.CN
$table = preg_replace("'<td[^>]*?>'si",'"',$table);
$table = str_replace("</td>",'",',$table);
$table = str_replace("</tr>","{tr}",$table); //oSPHP.COM.CN
//去掉 HTML 标记
$table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
//去掉空白字符
$table = preg_replace("'([rn])[s]+'","",$table);
$table = str_replace(" ","",$table);
$table = str_replace(" ","",$table);
$table = explode(",{tr}",$table);
array_pop ( $table );
return $table ;
}
?>
==============================================================================
//将HTML表格的每行每列转为数组,采集表格数据
<?
function get_td_array($table) {
$table = preg_replace("'<table[^>]*?>'si","",$table);
$table = preg_replace("'<tr[^>]*?>'si","",$table);
$table = preg_replace ( "'<td[^>]*?>'si" , "" , $table );
$table = str_replace ( "</tr>" , "{tr}" , $table );
$table = str_replace ( "</td>" , "{td}" , $table );
//去掉 HTML 标记
$table = preg_replace ( "'<[/!]*?[^<>]*?>'si" , "" , $table );
//去掉空白字符
$table = preg_replace ( "'([rn])[s]+'" , "" , $table );
$table = str_replace ( " " , "" , $table );
$table = str_replace ( " " , "" , $table );
$table = explode ( '{tr}' , $table );
array_pop ( $table );
foreach ( $table as $key => $tr ) {
$td = explode ( '{td}' , $tr );
array_pop ( $td );
$td_array [] = $td ;
}
return $td_array ;
}
?>
===============================================================================
//返回字符串中的所有单词 $distinct=true 去除重复
<?
function split_en_str($str,$distinct=true) { //开源代码OSPhP.COm.CN
preg_match_all('/([a-zA-Z]+)/',$str,$match);
if ($distinct == true) {
$match[1] = array_unique($match[1]); //开源代码OSPHP.COM.Cn
}
sort($match[1]);
return $match[1];
}
?>
===============================================================================