Submitted by cnetsa on 2009, June 24, 11:16 AM
PHP中的MYSQL常用函数总结
1、mysql_connect()-建立数据库连接
格式:
resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])
例:
$conn = @mysql_connect("localhost", "username", "password") or dir("不能连接到Mysql Server");
说明:使用该连接必须显示的关闭连接
2、mysql_pconnect()-建立数据库连接
格式:
resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])
例:
$conn = @mysql_pconnect("localhost", "username", "password") or dir("不能连接到Mysql Server");
说明:使用该连接函数不需要显示的关闭连接,它相当于使用了连接池
3、mysql_close()-关闭数据库连接
例:
$conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
@mysql_select_db("MyDatabase") or die("不能选择这个数据库,或数据库不存在");
echo "你已经连接到MyDatabase数据库";
mysql_close();
4、mysql_select_db()-选择数据库
格式:
boolean mysql_select_db(string db_name [, resource link_id])
例:
$conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
@mysql_select_db("MyDatabase") or die("不能选择这个数据库,或数据库不存在");
5、mysql_query()-查询MySQL
格式:
resource mysql_query (string query, [resource link_id])
例:
$linkId = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
@mysql_select_db("MyDatabase") or die("不能选择这个数据库,或者数据库不存在");
$query = "select * from MyTable";
$result = mysql_query($query);
mysql_close();
说明:若SQL查询执行成功,则返回资源标识符,失败时返回FALSE。若执行更新成功,则返回TRUE,否则返回FALSE
6、mysql_db_query()-查询MySQL
格式:
resource mysql_db_query(string database, string query [, resource link_id])
例:
$linkId = @mysql_connect("localhost", "username", "password") or die("不能连接到MysqlServer");
$query = "select * from MyTable";
$result = mysql_db_query("MyDatabase", $query);
mysql_close();
说明:为了使代码清晰,不推荐使用这个函数调用
7、mysql_result()-获取和显示数据
格式:
mixed mysql_result (resource result_set, int row [, mixed field])
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
for($count=0;$count<=mysql_numrows($result);$count++)
{
$c_id = mysql_result($result, 0, "id");
$c_name = mysql_result($result, 0, "name");
echo $c_id,$c_name;
}
说明:最简单、也是效率最低的数据获取函数
8、mysql_fetch_row()-获取和显示数据
格式:
array mysql_fetch_row (resource result_set)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while (list($id, $name) = mysql_fetch_row($result)) {
echo("Name: $name ($id) <br />");
}
说明:函数从result_set中获取整个数据行,将值放在一个索引数组中。通常会结使list()函数使用
9、mysql_fetch_array()-获取和显示数据
格式:
array mysql_fetch_array (resource result_set [, int result_type])
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row["id"];
$name = $row["name"];
echo "Name: $name ($id) <br />";
}
又例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_NUM)) {
$id = $row[0];
$name = $row[1];
echo "Name: $name ($id) <br />";
}
说明:
result_type的值有:
MYSQL_ASSOC: 字段名表示键,字段内容为值
MYSQL_NUM: 数值索引数组,操作与mysql_fetch_ros()函数一样
MYSQL_BOTH: 即作为关联数组又作为数值索引数组返回。result_type的默认值。
10、mysql_fetch_assoc()-获取和显示数据
格式:
array mysql_fetch_assoc (resource result_set)
相当于调用 mysql_fetch_array(resource, MYSQL_ASSOC);
11、mysql_fetch_object()-获取和显示数据
格式:
object mysql_fetch_object(resource result_set)
例:
$query = "select id, name from MyTable order by name";
while ($row = mysql_fetch_object($result)) {
$id = $row->id;
$name = $row->name;
echo "Name: $name ($id) <br />";
}
说明:返回一个对象,在操作上与mysql_fetch_array()相同
12、mysql_num_rows()-所选择的记录的个数
格式:
int mysql_num_rows(resource result_set)
例:
query = "select id, name from MyTable where id > 65";
$result = mysql_query($query);
echo "有".mysql_num_rows($result)."条记录的ID大于65";
说明:只在确定select查询所获取的记录数时才有用。
13、mysql_affected_rows()-受Insert,update,delete影响的记录的个数
格式:
int mysql_affected_rows([resource link_id])
例:
$query = "update MyTable set name='CheneyFu' where id>=5";
$result = mysql_query($query);
echo "ID大于等于5的名称被更新了的记录数:".mysql_affected_rows();
说明:该函数获取受INSERT,UPDATE或DELETE更新语句影响的行数
14、mysql_list_dbs()-获取数据库列表信息
格式:
resource mysql_list_dbs([resource link_id])
例:
mysql_connect("localhost", "username", "password");
$dbs = mysql_list_dbs();
echo "Databases: <br />";
while (list($db) = mysql_fetch_rows($dbs)) {
echo "$db <br />";
}
说明:显示所有数据库名称
15、mysql_db_name()-获取数据库名
格式:
string mysql_db_name(resource result_set, integer index)
说明:该函数获取在mysql_list_dbs()所返回result_set中位于指定index索引的数据库名
16、mysql_list_tables()-获取数据库表列表
格式:
resource mysql_list_tables(string database [, resource link_id])
例:
mysql_connect("localhost", "username", "password");
$tables = mysql_list_tables("MyDatabase");
while (list($table) = mysql_fetch_row($tables)) {
echo "$table <br />";
}
说明:该函数获取database中所有表的表名
17、mysql_tablename()-获取某个数据库表名
格式:
string mysql_tablename(resource result_set, integer index)
例:
mysql_connect("localhost", "username", "password");
$tables = mysql_list_tables("MyDatabase");
$count = -1;
while (++$count < mysql_numrows($tables)) {
echo mysql_tablename($tables, $count)."<br />";
}
说明:该函数获取mysql_list_tables()所返回result_set中位于指定index索引的表名
18、mysql_fetch_field()-获取字段信息
格式:
object mysql_fetch_field(resource result [, int field_offset])
例:
mysql_connect("localhost", "username", "password");
mysql_select_db("MyDatabase");
$query = "select * from MyTable";
$result = mysql_query($query);
$counts = mysql_num_fields($result);
for($count = 0; $count < $counts; $count++) {
$field = mysql_fetch_field($result, $count);
echo "<p>$field->name $field->type ($field->max_length) </p>";
}
说明:
返回的对象共有12个对象属性:
name: 字段名
table: 字段所在的表
max_length: 字段的最大长度
not_null: 如果字段不能为null,则为1,否则0
primary_key: 如果字段为主键,则为1,否则0
unique_key: 如果字段是唯一键,则为1, 否则0
multiple_key: 如果字段为非唯一,则为1,否则0
numeric: 如果字段为数值则为1,否则0
blob: 如果字段为BLOB则为1,否则为0
type: 字段的数据类型
unsigned: 如果字段为无符号数则为1,否则为0
zerofill: 如果字段为“零填充”则为1, 否则为0
19、mysql_num_fields()-获取查询的字段个数
格式:
integer mysql_num_fields (resource result_set)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
echo "这个查询的字段数是:".mysql_num_fields($result)."<br />";
20、mysql_list_fields()-获取指定表的所有字段的字段名
格式:
resource mysql_list_fields (string database_name, string table_name [, resource link_id])
例:
$fields = mysql_list_fields("MyDatabase", "MyTable");
echo "数据库MyDatabase中表MyTable的字段数: ".mysql_num_fields($fields)."<br />";
21、mysql_field_flags()-获取指定的字段选项
格式:
string mysql_field_flags (resource result_set, integer field_offset)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
$row=mysql_fetch_wor($row);
22、mysql_field_len()-获取指定的字段的最大长度
格式:
integer mysql_field_len (resource result_set, integer field_offset)
例:
$query = "select name from MyTable";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_len($result, 0)."<br />";
说明:
如果mysql_field_len($reseult, 0) = 16777215
那么numer_format(mysql_field_len($result))等于16,777,215
23、mysql_field_name()-获取字段名
格式:
string mysql_field_name (resource result_set, int field_offset)
例:
$query = "select id as PKID, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_name($result, 0); // Result: PKID
24、mysql_field_type()-获取字段类型
格式:
string mysql_field_type (resource result_set, int field_offset)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_type($result, 0); // Result: int
25、mysql_field_table()-获取字段所在表名
格式:
string mysql_field_table (resource result_set, int field_offset)
例:
$query = "select id as PKID, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_table($result, 0); // Result: MyTable
php | 评论:0
| Trackbacks:0
| 阅读:72
Submitted by cnetsa on 2009, June 24, 11:15 AM
<?php
/**
3* 公农历转换(1912 - 2012)
4* http://www.cnetsa.com
5* Usage:
6* // 公历1983-10-5转农历
7* $lunar = new Lunar();
8* $date = $lunar->getLar('1983-10-5',0);
* echo date("Y-m-d", $date);
* // 农历1983-8-29转公历
* $date = $lunar->getLar('1983-8-29',1);
* echo date("Y-m-d", $date);
*
* @param string 日期
* @param int 日期历法
* - 0 公历
* 1 农历
*
* @return timestamp
这是一个国历与农历互相转的Unit.
其中年份皆用民国年份, 请自行转换 (西元年-1911 = 民国年).
***************************************************************************
*国农历对映表之说明 : *
***************************************************************************
* 前二数字 = 闰月月份, 如果为 13 则没有闰月 *
* 第叁至第六数字 = 12 个月之大小月之2进位码->10进位 *
* 例如: *
* 101010101010 = 2730 *
* 1 : 代表大月(30天) 0 : 代表小月(29天) ==> 1月大2月小3月大.. *
* 第七位数字为闰月天数 *
* 0 : 没有闰月之天数 *
* 1 : 闰月为小月(29天) *
* 2 : 闰月为大月(30天) *
* 最後2位数字代表阳历之1月1日与阴历之1月1日相差天数 *
***************************************************************************
这对映表只有民国一年至民国一百年, 如不敷您的使用请按照上述之方式自行增加.
这个程式没有判断您所输入之年,月,日是否正确, 请自行判断.
如果转换出来之农历的月份是闰月则传给您的值是***负数***
如果农历要转换国历如果是闰月请输入***负数***
此版本为FreeWare Version : 0.1
您可以自行修改, 但最好可以将修改过之程式Mail一份给我.
如果您要用於商业用途, 请mail给我告知您的用途及原因.
*/
class Lunar {
var $LMDay = array();
var $InterMonth = 0;
var $InterMonthDays = 0;
var $SLRangeDay = 0;
var $SMDay = array(1 => 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var $LongLife = array( 1 =>
'132637048', '133365036', '053365225', '132900044', '131386034', '022778122', //6
'132395041', '071175231', '131175050', '132635038', '052891127', '131701046', //12
'131748035', '042741223', '130694043', '132391032', '021327122', '131175040', //18
'061623129', '133402047', '133402036', '051769125', '131453044', '130694034', //24
'032158223', '132350041', '073213230', '133221049', '133402038', '063466226', //30
'132901045', '131130035', '042651224', '130605043', '132349032', '023371121', //36
'132709040', '072901128', '131738047', '132901036', '051333226', '131210044', //42
'132651033', '031111223', '131323042', '082714130', '133733048', '131706038', //48
'062794127', '132741045', '131206035', '042734124', '132647043', '131318032', //54
'033878120', '133477039', '071461129', '131386047', '132413036', '051245126', //60
'131197045', '132637033', '043405122', '133365041', '083413130', '132900048', //66
'132922037', '062394227', '132395046', '131179035', '042711124', '132635043', //72
'102855132', '131701050', '131748039', '062804128', '132742047', '132359036', //78
'051199126', '131175045', '131611034', '031866122', '133749040', '081717130', //84
'131452049', '132742037', '052413127', '132350046', '133222035', '043477123', //90
'133402042', '133493031', '021877121', '131386039', '072747128', '130605048', //96
'132349037', '053243125', '132709044', '132890033');
function getLar($date, $isLunar = 1){
list($year, $month, $day) = split("-", $date);
if($isLunar == 1)
return $this->Lunar2Solar($year, $month, $day);
else
return $this->Solar2Lunar($year, $month, $day);
}
function IsLeapYear($AYear){
return ($AYear % 4 == 0) and (($AYear % 100 <> 0) or ($AYear % 400 == 0));
}
function CovertLunarMonth($magicno){
$m = $magicno;
for ($i = 12; $i >= 1; $i--){
$size = $m % 2;
if ($size == 0)
$this->LMDay[$i] = 29;
else
$this->LMDay[$i] = 30;
$m = floor($m / 2);
}
}
function ProcessMagicStr($yy){
$yy = $yy - 1911;
$magicstr = $this->LongLife[$yy];
$this->InterMonth = substr($magicstr, 0, 2);
$LunarMonth = substr($magicstr, 2, 4);
$this->CovertLunarMonth($LunarMonth);
$dsize = substr($magicstr, 6, 1);
switch ($dsize) {
case 0 :
$this->InterMonthDays = 0;
break;
case 1 :
$this->InterMonthDays = 29;
break;
case 2 :
$this->InterMonthDays = 30;
break;
}
$this->SLRangeDay = substr($magicstr, 7, 2);
}
function DaysPerLunarMonth($LYear, $LMonth){
$this->ProcessMagicStr($LYear);
if ($LMonth < 0)
return $this->InterMonthDays;
else
return $this->LMDay[$LMonth];
}
function Solar2Lunar($SYear, $SMonth, $SDay){
if( !(1912 <= $SYear && $SYear <= 2012) ){
return false;
}
$day = 0;
if ($this->isLeapYear($SYear))
$this->SMDay[2] = 29;
$this->ProcessMagicStr($SYear);
if ($SMonth == 1)
$day = $SDay;
else {
for($i = 1; $i <= $SMonth-1; $i++)
$day = $day + $this->SMDay[$i];
$day = $day + $SDay;
}
if ($day <= $this->SLRangeDay) {
$day = $day - $this->SLRangeDay;
$this->processmagicstr($SYear-1);
for ($i = 12; $i >= 1; $i--){
$day = $day + $this->LMDay[$i];
if ($day > 0)
break;
}
$LYear = $SYear - 1;
$LMonth = $i;
$LDay = $day;
} else {
$day = $day - $this->SLRangeDay;
for($i = 1; $i <= $this->InterMonth-1; $i++){
$day = $day - $this->LMDay[$i];
if ($day <= 0)
break;
}
if ($day <= 0) {
$LYear = $SYear;
$LMonth = $i;
$LDay = $day + $this->LMDay[$i];
} else {
$day = $day - $this->LMDay[$this->InterMonth];
if ($day <= 0) {
$LYear = $SYear;
$LMonth = $this->InterMonth;
$LDay = $day + $this->LMDay[$this->InterMonth];
} else {
$this->LMDay[$this->InterMonth] = $this->InterMonthDays;
for ($i = $this->InterMonth; $i <= 12; $i++){
$day = $day - $this->LMDay[$i];
if ($day <= 0)
break;
}
if ($i == $this->InterMonth)
$LMonth = 0 - $this->InterMonth;
else
$LMonth = $i;
$LYear = $SYear;
$LDay = $day + $this->LMDay[$i];
}
}
}
return mktime(0, 0, 0, $LMonth, $LDay, $LYear);
}
function Lunar2Solar($LYear, $LMonth, $LDay){
if( !(1912 <= $LYear && $LYear <= 2012) ){
return false;
}
$day = 0;
$SYear = $LYear;
if ($this->isLeapYear($SYear))
$this->SMDay[2] = 29;
$this->processmagicstr($SYear);
if ($LMonth < 0)
$day = $this->LMDay[$this->InterMonth];
if ($LMonth <> 1)
for ($i = 1; $i <= $LMonth-1; $i++)
$day = $day + $this->LMDay[$i];
$day = $day + $LDay + $this->SLRangeDay;
if (($this->InterMonth <> 13) and ($this->InterMonth < $LMonth))
$day = $day + $this->InterMonthDays;
for ($i = 1; $i <= 12; $i++){
$day = $day - $this->SMDay[$i];
if ($day <= 0)
break;
}
if ($day > 0) {
$SYear = $SYear + 1;
if ($this->isLeapYear($SYear))
$this->SMDay[2] = 29;
for ($i = 1; $i <= 12; $i++){
$day = $day - $this->SMDay[$i];
if ($day <= 0)
break;
}
}
$day = $day + $this->SMDay[$i];
$SMonth = $i;
$SDay = $day;
return mktime(0, 0, 0, $SMonth, $SDay, $SYear);
}
}
$lunar = new Lunar();
echo "公历转农历";
$date = $lunar->getLar('1983-03-31',0);
echo date("Y-m-d", $date);
// 农历1983-8-29转公历
echo "<br>";
echo "农历转公历";
$date = $lunar->getLar('1983-07-04',1);
echo date("Y-m-d", $date);
?>
php | 评论:0
| Trackbacks:0
| 阅读:81
Submitted by cnetsa on 2009, June 24, 10:14 AM
//获得当前的脚本网址
2 function get_php_url(){
3 if(!empty($_SERVER["REQUEST_URI"])){
4 $scriptName = $_SERVER["REQUEST_URI"];
5 $nowurl = $scriptName;
6 }else{
7 $scriptName = $_SERVER["PHP_SELF"];
8 if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
9 else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
10 }
11 return $nowurl;
12 }
13 //把全角数字转为半角数字
14 function GetAlabNum($fnum){
15 $nums = array("0","1","2","3","4","5","6","7","8","9");
16 $fnums = "0123456789";
17 for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum);
18 $fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum);
19 if($fnum=="") $fnum=0;
20 return $fnum;
21 }
22 //去除HTML标记
23 function Text2Html($txt){
24 $txt = str_replace(" "," ",$txt);
25 $txt = str_replace("<","<",$txt);
26 $txt = str_replace(">",">",$txt);
27 $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);
28 return $txt;
29 }
30
31 //清除HTML标记
32 function ClearHtml($str){
33 $str = str_replace('<','<',$str);
34 $str = str_replace('>','>',$str);
35 return $str;
36 }
37 //相对路径转化成绝对路径
38 function relative_to_absolute($content, $feed_url) {
39 preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol);
40 $server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url);
41 $server_url = preg_replace("/\/.*/", "", $server_url);
42
43 if ($server_url == '') {
44 return $content;
45 }
46
47 if (isset($protocol[0])) {
48 $new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content);
49 $new_content = preg_replace('/src="\//', 'src="'.$protocol[0].$server_url.'/', $new_content);
50 } else {
51 $new_content = $content;
52 }
53 return $new_content;
54 }
55 //取得所有链接
56 function get_all_url($code){
57 preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
58 return array('name'=>$arr[2],'url'=>$arr[1]);
59 }
60
61 //获取指定标记中的内容
62 function get_tag_data($str, $start, $end){
63 if ( $start == '' || $end == '' ){
64 return;
65 }
66 $str = explode($start, $str);
67 $str = explode($end, $str[1]);
68 return $str[0];
69 }
70 //HTML表格的每行转为CSV格式数组
71 function get_tr_array($table) {
72 $table = preg_replace("'<td[^>]*?>'si",'"',$table);
73 $table = str_replace("</td>",'",',$table);
74 $table = str_replace("</tr>","{tr}",$table);
75 //去掉 HTML 标记
76 $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);
77 //去掉空白字符
78 $table = preg_replace("'([\r\n])[\s]+'","",$table);
79 $table = str_replace(" ","",$table);
80 $table = str_replace(" ","",$table);
81
82 $table = explode(",{tr}",$table);
83 array_pop($table);
84 return $table;
85 }
86
87 //将HTML表格的每行每列转为数组,采集表格数据
88 function get_td_array($table) {
89 $table = preg_replace("'<table[^>]*?>'si","",$table);
90 $table = preg_replace("'<tr[^>]*?>'si","",$table);
91 $table = preg_replace("'<td[^>]*?>'si","",$table);
92 $table = str_replace("</tr>","{tr}",$table);
93 $table = str_replace("</td>","{td}",$table);
94 //去掉 HTML 标记
95 $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);
96 //去掉空白字符
97 $table = preg_replace("'([\r\n])[\s]+'","",$table);
98 $table = str_replace(" ","",$table);
99 $table = str_replace(" ","",$table);
100
101 $table = explode('{tr}', $table);
102 array_pop($table);
103 foreach ($table as $key=>$tr) {
104 $td = explode('{td}', $tr);
105 array_pop($td);
106 $td_array[] = $td;
107 }
108 return $td_array;
109 }
110
111 //返回字符串中的所有单词 $distinct=true 去除重复
112 function split_en_str($str,$distinct=true) {
113 preg_match_all('/([a-zA-Z]+)/',$str,$match);
114 if ($distinct == true) {
115 $match[1] = array_unique($match[1]);
116 }
117 sort($match[1]);
118 return $match[1];
119 }
php | 评论:1
| Trackbacks:0
| 阅读:103
Submitted by cnetsa on 2009, June 24, 9:47 AM
<?php
2
3 nl2br(); // \n to <br/>
4 addslashes(); stripslashes(); //对数据库操作时,转义特殊字符
5
6 chop(); //除去字符串右边空格
7 trim(); //除去字符串中所有空格
8 ltrim(); //除去字符串左边空格
9
10 htmlspecialchars(); //转换'$','"','<','>'为相应的html实体
11 htmlentities(); //转换所有html标记为相应的html实体
12
13 array explode(string separator, string str); //分割字符串
14 string implode(string separator, array arr); //连接字符串
15
16 strtoupper(); strtolower(); //转换大小写
17 ucfirst(); //只转换第一个字符为大写
18 ucwords(); //转换每个words的第一个字母为大写
19 ?>
用正则替换空格,空格的正则代码是\s。
1 <?php
2
3 $string = "ooo 我是 空格 ";
4 $string = preg_replace("/(\s+)/",'',$string);//替换所有空格
5 echo $string;
6
7 ?>
php | 评论:0
| Trackbacks:0
| 阅读:69
Submitted by cnetsa on 2009, June 24, 9:39 AM
$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv'] #传递给该脚本的参数。
$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。
例如,“CGI/1.1”。
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。
例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。
例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING'] #查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。
在服务器配置文件中定义。
$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。
例如:“iso-8859-1,*,utf-8”。
$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。
例如:“gzip”。
$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。
例如:“en”。
$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。
例如:“Keep-Alive”。
$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS'] — 如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。
$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。
这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。
例如,“/index.html”。
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型
php | 评论:0
| Trackbacks:0
| 阅读:64
Submitted by cnetsa on 2009, June 23, 5:50 PM
php | 评论:0
| Trackbacks:0
| 阅读:79
Submitted by cnetsa on 2009, June 23, 5:36 PM
用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。
以下为引用的内容:
#用户发布的html,过滤危险代码
function uh($str)
{
$farr = array(
"/\s+/", //过滤多余的空白
"/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU", //过滤 <script 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object的过滤
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU", //过滤javascript的on事件
);
$tarr = array(
" ",
"<\\1\\2\\3>", //如果要直接清除不安全的标签,这里可以留空
"\\1\\2",
);
$str = preg_replace( $farr,$tarr,$str);
return $str;
}
php | 评论:0
| Trackbacks:0
| 阅读:85
Submitted by cnetsa on 2009, June 23, 5:14 PM
checkdate
验证日期的正确性。
语法: int checkdate(int month, int day, int year);
返回值: 整数
函数种类: 时间日期
内容说明
若日期是有效的则返回 true,若日期有问题,则返回 false。本函数可以用来检查日期是否有效。有效范围如下:
年 为 0 至 32767 年
月 为 1 至 12 月
日 则随着月份及闰年变化
1,年-月-日
echo date('Y-m-j');
2007-02-6
echo date('y-n-j');
07-2-6
大写Y表示年四位数字,而小写y表示年的两位数字;
小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。
echo date('Y-M-j');
2007-Feb-6
echo date('Y-m-d');
2007-02-06
大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);
没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。
echo date('Y-M-j');
2007-Feb-6
echo date('Y-F-jS');
2007-February-6th
大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)
大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。
小结:
表示年可以用大写的Y和小写y;
表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);
表示日可以用小写d和小写j,大写S表示日期的后缀。
2,时:分:秒
默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。
echo date('g:i:s a');
5:56:57 am
echo date('h:i:s A');
05:56:57 AM
小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。
echo date('G:i:s');
14:02:26
大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数
小结:
字母g表示小时不带前导,字母h表示小时带前导;
小写g、h表示12小时制,大写G、H表示24小时制。
3,闰年、星期、天
echo date('L');
今年是否闰年:0
echo date('l');
今天是:Tuesday
echo date('D');
今天是:Tue
大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;
小写l表示当天是星期几的英文全写(Tuesday);
而使用大写D表示星期几的3个字符缩写(Tue)。
echo date('w');
今天星期:2
echo date('W');
本周是全年中的第 06 周
小写w表示星期几,数字形式表示
大写W表示一年中的星期数
echo date('t');
本月是 28 天
echo date('z');
今天是今年的第 36 天
小写t表示当前月份又多少天
小写z表示今天是本年中第几天
4,其他
echo date('T');
UTC
大写T表示服务器的时间区域设置
echo date('I');
0
大写I表示判断当前是否为夏令时,为真返回1,否则为0
echo date('U');
1170769424
大写U表示从1970年1月1日到现在的总秒数,就是Unix时间纪元的UNIX时间戳。
echo date('c');
2007-02-06T14:24:43+00:00
小写c表示ISO8601日期,日期格式为YYYY-MM-DD,用字母T来间隔日期和时间,时间格式为HH:MM:SS,时区使用格林威治标准时间(GMT)的偏差来表示。
echo date('r');
Tue, 06 Feb 2007 14:25:52 +0000
小写r表示RFC822日期。
-=------------------------------------------------------------------------------------------------------------
strftime
将服务器的时间本地格式化。
语法: string strftime(string format, int [timestamp]);
返回值: 字符串
函数种类: 时间日期
内容说明
返回值的字符串依配置的格式来决定。若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间本地格式化返回。月份或者星期名称随着本地语系配置 setlocale() 的不同而改变。
返回的字符串可以依下列的格式而定:
* %a 星期几的缩写。
* %A 星期几的全名。
* %b 月份名称的缩写。
* %B 月份名称的全名。
* %c 本地端日期时间较佳表示字符串。
* %d 用数字表示本月的第几天 (范围为 00 至 31)。
* %H 用 24 小时制数字表示小时数 (范围为 00 至 23)。
* %I 用 12 小时制数字表示小时数 (范围为 01 至 12)。
* %j 以数字表示当年度的第几天 (范围为 001 至 366)。
* %m 月份的数字 (范围由 1 至 12)。
* %M 分钟。
* %p 以 'AM' 或 'PM' 表示本地端时间。
* %S 秒数。
* %U 数字表示为本年度的第几周,第一个星期由第一个周日开始。
* %W 数字表示为本年度的第几周,第一个星期由第一个周一开始。
* %w 用数字表示本周的第几天 ( 0 为周日)。
* %x 不含时间的日期表示法。
* %X 不含日期的时间表示法。
* %y 二位数字表示年份 (范围由 00 至 99)。
* %Y 完整的年份数字表示,即四位数。
* %Z 时区或名称缩写。
* %% % 字符。
使用范例
<?php
setlocale ("LC_TIME", "C");
print(strftime("%A in Finnish is "));
setlocale ("LC_TIME", "fi");
print(strftime("%A, in French "));
setlocale ("LC_TIME", "fr");
print(strftime("%A and in German "));
setlocale ("LC_TIME", "de");
print(strftime("%A.\n"));
?>
date
将服务器的时间格式化。
语法: string date(string format, int [timestamp]);
返回值: 字符串
函数种类: 时间日期
内容说明
返回值的字符串依配置的格式来决定。若有传入时间戳记值,则将时间戳记格式化返回;若无传入时间戳记值,则将目前服务器的时间格式化返回。要将日期转为其它的语系格式,应使用setlocale() 及 strftime() 二个函数。字符串格式化的选项如下:
* a - "am" 或是 "pm"
* A - "AM" 或是 "PM"
* d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
* D - 星期几,三个英文字母; 如: "Fri"
* F - 月份,英文全名; 如: "January"
* h - 12 小时制的小时; 如: "01" 至 "12"
* H - 24 小时制的小时; 如: "00" 至 "23"
* g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
* G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
* i - 分钟; 如: "00" 至 "59"
* j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
* l - 星期几,英文全名; 如: "Friday"
* m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
* n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
* M - 月份,三个英文字母; 如: "Jan"
* s - 秒; 如: "00" 至 "59"
* S - 字尾加英文序数,二个英文字母; 如: "th","nd"
* t - 指定月份的天数; 如: "28" 至 "31"
* U - 总秒数
* w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
* Y - 年,四位数字; 如: "1999"
* y - 年,二位数字; 如: "99"
* z - 一年中的第几天; 如: "0" 至 "365"
其它不在上列的字符则直接列出该字符。
使用范例
范例一:
<?
print(date( "l dS of F Y h:i:s A" ));
print("July 1, 2000 is on a " . date("l", mktime(0,0,0,7,1,2000)));
?>
范例二:
<?
$tomorrow = mktime(0,0,0,date("m") ,date("d")+1,date("Y"));
$lastmonth = mktime(0,0,0,date("m")-1,date("d"), date("Y"));
$nextyear = mktime(0,0,0,date("m"), date("d", date("Y")+1);
?>
getdate
获得时间及日期信息。
语法: array getdate(int timestamp);
返回值: 数组
函数种类: 时间日期
内容说明
返回数组的元素包括下列的项目:
* "seconds" - 秒
* "minutes" - 分
* "hours" - 时
* "mday" - 当月的第几天
* "wday" - 当周的第几天数字
* "mon" - 月份数字
* "year" - 年,数字
* "yday" - 当年的第几天数字; 如: "299"
* "weekday" - 星期几全名; 如: "Friday"
* "month" - 月份全名; 如: "January"
php | 评论:0
| Trackbacks:0
| 阅读:90