分享
 
 
 

PHP经验集锦

王朝php·作者佚名  2008-12-22
窄屏简体版  字體: |||超大  

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

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();

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有