| 订阅 | 在线投稿
分享
 
 
 

PHP经验集锦

来源:互联网  宽屏版  评论
2008-12-22 08:09:05

最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!

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'>":"";

7.数据库封装例子

<?php

//------------------------------------------------------------------------------------------

// ※Database() 构造函数,数据库初始参数

// ※Select() 查询

// ※GetRows() 返回查询的记录总数

// ※Insert() 插入记录

// ※Update() 更新

// ※Delete() 删除

// ※Halt() 中断并显示错误信息*/

//------------------------------------------------------------------------------------------

define("DATABASETYPE","1"); //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc

define("SERVER","localhost"); //Host name or IP address of the database server

define("DATABASE","dbName"); //要连接的数据库名

define("USER","tableName"); //用于连接数据库的用户名

define("PASSWORD","paswd"); //用于连接数据库的密码

class Database{

var $dbLink; //连接句柄

var $result; //查询句柄

var $insId; //Insert()成功返回AUTO_INCREMENT列的值

var $rows; //返回数据数组

var $numRows; //返回数据数目

var $dbHost, $dbUser, $userPassword, $database;

var $dbType=DATABASETYPE;

var $msgFlag = "yes" ; //yes:show the Mysql message ; no: die by show "Halted."

function Database($dbHost=SERVER,$dbUser=USER,$userPassword=PASSWORD,$database=DATABASE){

switch($this->dbType){

case 1:

$this->dbLink=@mysql_pconnect($dbHost,$dbUser,$userPassword);// or die("Can't Connect to Remote Host!");

@mysql_select_db($database,$this->dbLink);// or die ("Can't Connect to Remote Host!");

break;

case 2:

break;

}

return true;

}

/*SQL:Select() 返回为false无结果*/

function Select($table,$columns,$condition=1){

$sql="select $columns from $table where $condition ";

//echo $sql."<br>";

$this->result=@mysql_query($sql,$this->dbLink);

unset($this->rows);

if($this->result){

$i=0;

if(!($this->rows=array("$i"=>@mysql_fetch_array($this->result))))

return false;

if(($this->numRows=@mysql_num_rows($this->result))==0)

return false;

while(tempRows=@mysql_fetch_array($this-]result"$tempRows=@mysql_fetch_array($this->result)){

array_push($this->rows,$tempRows);

}

}else{

$this->Halt($sql);

return false;

}

return true;

}

/*SQL:GetRows() 返回查询的记录总数*/

function GetRows($table,$condition=1){

$sql="select count(1) as count from $table where $condition";

//echo $sql."<br>";

$this->result=@mysql_query($sql,$this->dbLink);

if($this->result){

temp=@mysql_fetch_array($this-]result"$temp=@mysql_fetch_array($this->result);

$this->numRows=$temp[count];

}else{

$this->Halt($sql);

return false;

}

return $this->numRows;

}

/*SQL:Insert()*/

function Insert($table,$columns,$values){

$sql="insert into $table ($columns) values ($values)";

//echo $sql;

$this->result=@mysql_query($sql,$this->dbLink);

if ($this->result)

$this->insId=@mysql_insert_id($this->dbLink);

else{

$this->Halt($sql);

return false;

}

return true;

}

/*SQL:Update()*/

function Update($table,$setings,$condition){

$sql="update $table set $setings where $condition";

//echo $sql;

$this->result=@mysql_query($sql,$this->dbLink);

if ($this->result)

$this->numRows=@mysql_affected_rows($this->result);

else{

$this->Halt($sql);

return false;

}

return true;

}

/*SQL:Delete*/

function Delete($table,$condition){

$sql="delete from $table where $condition";

$this->result=@mysql_query($sql,$this->dbLink);

if ($this->result)

$this->numRows=@mysql_affected_rows($this->result);

else{

$this->Halt($sql);

return false;

}

return true;

}

/*Halt():error message */

function Halt($msg){

if($this->msgFlag=="yes"){

printf("<b>Database Query Error:</b> %s<br>\n", $msg);

printf("<b>MySql Error:</b> %s<br>\n",mysql_error());

}else

echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'>";//自定一个出错提示文件

return false;

}

}

switch($db->dbType){

case 1:

@mysql_close();

break;

case 2:

break;

}

$db = new Database();

?>

最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家! 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\.]+)/","[url=file://\\1]\\1",$browserver[/url]); $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\.]+)/","[url=file://\\1]\\1",$browserver[/url]); $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\.]+)/","[url=file://\\1]\\1",$browserver[/url]); $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'>":""; 7.数据库封装例子 <?php //------------------------------------------------------------------------------------------ // ※Database() 构造函数,数据库初始参数 // ※Select() 查询 // ※GetRows() 返回查询的记录总数 // ※Insert() 插入记录 // ※Update() 更新 // ※Delete() 删除 // ※Halt() 中断并显示错误信息*/ //------------------------------------------------------------------------------------------ define("DATABASETYPE","1"); //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc define("SERVER","localhost"); //Host name or IP address of the database server define("DATABASE","dbName"); //要连接的数据库名 define("USER","tableName"); //用于连接数据库的用户名 define("PASSWORD","paswd"); //用于连接数据库的密码 class Database{ var $dbLink; //连接句柄 var $result; //查询句柄 var $insId; //Insert()成功返回AUTO_INCREMENT列的值 var $rows; //返回数据数组 var $numRows; //返回数据数目 var $dbHost, $dbUser, $userPassword, $database; var $dbType=DATABASETYPE; var $msgFlag = "yes" ; //yes:show the Mysql message ; no: die by show "Halted." function Database($dbHost=SERVER,$dbUser=USER,$userPassword=PASSWORD,$database=DATABASE){ switch($this->dbType){ case 1: $this->dbLink=@mysql_pconnect($dbHost,$dbUser,$userPassword);// or die("Can't Connect to Remote Host!"); @mysql_select_db($database,$this->dbLink);// or die ("Can't Connect to Remote Host!"); break; case 2: break; } return true; } /*SQL:Select() 返回为false无结果*/ function Select($table,$columns,$condition=1){ $sql="select $columns from $table where $condition "; //echo $sql."<br>"; $this->result=@mysql_query($sql,$this->dbLink); unset($this->rows); if($this->result){ $i=0; if(!($this->rows=array("$i"=>@mysql_fetch_array($this->result)))) return false; if(($this->numRows=@mysql_num_rows($this->result))==0) return false; while([url=mailto:$tempRows=@mysql_fetch_array($this-]result"$tempRows=@mysql_fetch_array($this->result[/url])){ array_push($this->rows,$tempRows); } }else{ $this->Halt($sql); return false; } return true; } /*SQL:GetRows() 返回查询的记录总数*/ function GetRows($table,$condition=1){ $sql="select count(1) as count from $table where $condition"; //echo $sql."<br>"; $this->result=@mysql_query($sql,$this->dbLink); if($this->result){ [url=mailto:$temp=@mysql_fetch_array($this-]result"$temp=@mysql_fetch_array($this->result[/url]); $this->numRows=$temp[count]; }else{ $this->Halt($sql); return false; } return $this->numRows; } /*SQL:Insert()*/ function Insert($table,$columns,$values){ $sql="insert into $table ($columns) values ($values)"; //echo $sql; $this->result=@mysql_query($sql,$this->dbLink); if ($this->result) $this->insId=@mysql_insert_id($this->dbLink); else{ $this->Halt($sql); return false; } return true; } /*SQL:Update()*/ function Update($table,$setings,$condition){ $sql="update $table set $setings where $condition"; //echo $sql; $this->result=@mysql_query($sql,$this->dbLink); if ($this->result) $this->numRows=@mysql_affected_rows($this->result); else{ $this->Halt($sql); return false; } return true; } /*SQL:Delete*/ function Delete($table,$condition){ $sql="delete from $table where $condition"; $this->result=@mysql_query($sql,$this->dbLink); if ($this->result) $this->numRows=@mysql_affected_rows($this->result); else{ $this->Halt($sql); return false; } return true; } /*Halt():error message */ function Halt($msg){ if($this->msgFlag=="yes"){ printf("<b>Database Query Error:</b> %s<br>\n", $msg); printf("<b>MySql Error:</b> %s<br>\n",mysql_error()); }else echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'>";//自定一个出错提示文件 return false; } } switch($db->dbType){ case 1: @mysql_close(); break; case 2: break; } $db = new Database(); ?>
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有