人的头脑太复杂,时间过得久,有时候连自己也被自己骗了,记下来才是最真实的...... 注册 | 登陆
浏览模式: 标准 | 列表全部文章

PHP中的MYSQL常用函数最新总结

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公历农历转换(阴历阳历转换)阴历和阳历转换

<?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采集程序中常用的函数

 //获得当前的脚本网址
  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("","","","","","","","","","");
 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("<","&lt;",$txt);
 26         $txt = str_replace(">","&gt;",$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('<','&lt;',$str);
 34         $str = str_replace('>','&gt;',$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字符串过滤,转换函数积累

<?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中$_SERVER的详细参数与说明

$_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属性

今天在学习PHP的时候看到两个非常有用的属性:__toString和ReflectionClass,下面将它的用法贴出来,供大家参考。

其中ReflectionClass是非常有用的,如果在使用一个不知道的类的时候,利用这个方法就可以将类的构造输出到屏幕上

 

<?php
 2class Page{
 3    // class Page's attributes
 4    public $content;
 5    public $title = '这是我的TITLE';
 6    public $keywords = '这是我的keywords';
 7    public $buttons = array(
 8            'Home' => 'home.php',
 9            'Contact' => 'contact.php',
10            'Site Map' => 'map.php'
11        );
12    public function __toString(){
13        // var_export 打印出类中的所有属性值
14        return (var_export($this,TRUE));
15    }
16    public function _set($name,$value){
17        $this->$name = $value;
18    }
19
20    public function display(){
21        echo '<html><br/><head><br/>';
22    }
23}
24$test = new Page();
25echo $test.'<br/>';
26// ReflectionClass 为反射属性 显示关于类的信息
27$class = new ReflectionClass('Page');
28echo '<pre>';
29echo $class;
30echo '</pre>';
31?>

php过滤危险html代码书写

用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日期时间函数最新整理

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"

Records:22312345678910»