麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

PHP開發常用函數和必須會的函數總結

2020-03-22 20:32:52
字體:
來源:轉載
供稿:網友
  • PHP開發常用函數
    在共過開發中,我經常要用到一些html' target='_blank'>PHP函數,有時會不記得,這里把這些常用函數總結到一起。本篇列舉了PHP程序員開發中經常用到的php函數。幾乎每個函數都有例子,老手可以看看當做溫習,新手可以背理論,然后把例子敲他幾遍,后面再開發中,開發效率絕對有所提高。例子大多取自w3cschool標準例子和網上的一些資源,部分為個人所寫,均經過測試。如果要裝載本文,還請注明來源 :http://blog.csdn.net/qq_22327455。
    一.檢查函數

    1.empty()
    empty() 函數是用來測試變量是否已經配置。若變量已存在、非空字符串或者非零,則返回 false 值;反之返回 true值。所以,當字符串的值為0時,也返回true,就是執行empty內部的語句。
    empty()函數 判斷值為否為空
    若變量不存在則返回 TRUE
    若變量存在且其值為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 TURE
    若變量存在且值不為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 FALSE
    empty() 只檢測變量,檢測任何非變量的東西都將導致解析錯誤。換句話說,后邊的語句將不會起作用: empty(addslashes($name))。

    2.isset()
    isset() 函數 一般用來檢測變量是否設置。
    若變量不存在則返回 FALSE
    若變量存在且其值為NULL,也返回 FALSE
    若變量存在且值不為NULL,則返回 TURE
    同時檢查多個變量時,每個單項都符合上一條要求時才返回 TRUE,否則結果為 FALSE
    使用 unset() 釋放變量之后,它將不再是 isset()。
    如檢測 $id 變量,當 $id=0 時,用empty() 和 isset() 來檢測變量 $id 是否已經配置,兩都將返回不同的值—— empty() 認為沒有配置,isset() 能夠取得 $id 的值:
    我們在使用變量處理函數時,當該變量可能出現0的值,使用 empty() 要小心,這個時候用 isset 取代它更明智一些。
    如果變量為0,則empty()會返回TRUE,isset()會返回TRUE;
    如果變量為空字符串,則empty()會返回TRUE,isset()會返回TRUE;
    如果變量未定義,則empty()會返回TRUE,isset()會返回FLASE;

    3.defined() 函數檢查某常量是否存在。若常量存在,則返回 true,否則返回 false。
    例子
    <?php
    define("GREETING","Hello world!");
    echo defined("GREETING"); //輸出:1
    ?>

    4.is_int()
    is_int() 判斷變量類型是否為整數類型。
    其他類似判斷變量類型函數:is_array() is_double() is_float() is_integer() is_long() is_object() is_real() is_string()

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------


    二. 數組函數
    1.array_keys()
    array_keys()定義: 函數返回包含數組中所有鍵名的一個新數組。
    array_keys() 案例:
    $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
    print_r(array_keys($a)); //輸出:Array ( [0] => a [1] => b [2] => c )

    2.array_values()
    array_values()定義: 函數返回一個包含給定數組中所有鍵值的數組,但不保留鍵名。
    array_values() 案例:
    $a=array("a"=>"Horse","b"=>"Cat","c"=>"Dog");
    print_r(array_keys($a)); //輸出:Array ( [0] => Horse [1] => Cat [2] => Dog )

    3.array_filter()
    array_filter() 定義:函數用回調函數過濾數組中的元素,如果自定義過濾函數返回 true,則被操作的數組的當前值就會被包含在返回的結果數組中, 并將結果組成一個新的數組。如果原數組是一個關聯數組,鍵名保持不變。
    array_filter() 語法:array_filter(array,function)
    array_filter() 案例:
    function test($v){
    if($v === 'Cat'){
    return true;
    }
    return false;
    }
    $a=array(0=>"Dog",1=>"Cat",2=>"Horse");
    print_r(array_filter($a,"test")); //輸出:Array ( [1] => Cat )

    4.array_slice() 定義:函數在數組中根據條件取出一段值,并返回。
    array_slice() 語法:array_slice(array,offset,length,preserve)
    參數 描述
    offset:必需。數值。規定取出元素的開始位置。
    如果是正數,則從前往后開始取,如果是負值,從后向前取 offset 絕對值。
    length:可選。數值。規定被返回數組的長度。
    如果 length 為正,則返回該數量的元素。
    如果 length 為負,則序列將終止在距離數組末端這么遠的地方。
    如果省略,則序列將從 offset 開始直到 array 的末端。

    5.array_slice() 案例:
    $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird",4=>"lili",5=>"james");
    print_r(array_slice($a,0)); //輸出:Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird [4] => lili [5] => james )
    print_r(array_slice($a,0,2)); //輸出:Array ( [0] => Dog [1] => Cat )
    print_r(array_slice($a,0,-2)); //輸出:Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird )
    print_r(array_slice($a,-2,-1)); //輸出:Array ( [0] => lili )
    print_r(array_slice($a,-1,-2)); //輸出:Array()

    6.array_serch()
    array_search() 函數與 in_array() 一樣,在數組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false。
    <?php
    $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
    echo array_search("Dog",$a); //輸出:a
    ?>

    7.array_merge()
    array_merge() 函數把兩個或多個數組合并為一個數組。

    例子
    <?php
    $a1=array("a"=>"Horse","b"=>"Dog");
    $a2=array("c"=>"Cow","b"=>"Cat");
    print_r(array_merge($a1,$a2)); //輸出:Array ( [a] => Horse [b] => Cat [c] => Cow )
    ?>

    8.array_combine()
    array_combine() 函數通過合并兩個數組來創建一個新數組,其中的一個數組是鍵名,另一個數組的值為鍵值。如果其中一個數組為空,或者兩個數組的元素個數不同,則該函數返回 false。

    例子
    <?php
    $a1=array("a","b","c","d");
    $a2=array("Cat","Dog","Horse","Cow");
    print_r(array_combine($a1,$a2)); //輸出:Array ( [a] => Cat [b] => Dog [c] => Horse [d] => Cow )
    ?>

    9.is_array()
    is_array 判斷變量類型是否為數組類型。若變量為數組類型則返回 true,否則返回 false。

    10.in_array() in_array(value,array,type)
    in_array() 函數在數組中搜索給定的值。
    如果給定的值 value 存在于數組 array 中則返回 true。如果第三個參數設置為 true,函數只有在元素存在于數組中且數據類型與給定值相同時才返回 true。
    如果沒有在數組中找到參數,函數返回 false。
    $people = array("Peter", "Joe", "Glenn", "Cleveland", 23);
    if (in_array(23,$people, TRUE)){
    echo "Match found<br />";
    }else{
    echo "Match not found<br />";
    }
    ?>
    輸出:Match found//數據類型與給定值都相同

    if (in_array("23",$people, TRUE)){
    echo "Match found<br />";
    }else{
    echo "Match not found<br />";
    }
    輸出:Match not found//數據類型不同,給定值相同

    11.count() sizeof() 該函數是 count() 的別名。
    count() 函數計算數組中的單元數目或對象中的屬性個數。對于數組,返回其元素的個數,對于其他值,返回 1。如果參數是變量而變量沒有定義,則返回 0。
    <?php
    $people = array("Peter", "Joe", "Glenn", "Cleveland");
    $result = count($people);
    echo $result; //輸出:4
    ?>

    12.array_push() array_push() 函數向第一個參數的數組尾部添加一個或多個元素(入棧),然后返回新數組的長度。該函數等于多次調用 $array[] = $value。
    <?php
    $arr = array();
    $arr[]= 'john';
    array_push($arr, 'jams','tome');
    print_r($arr); //輸出: Array ( [0] => john [1] => jams [2] => tome )
    ?>

    13.array_pop()
    array_pop() 函數刪除數組中的最后一個元素。
    <?php
    $a=array("Dog","Cat","Horse");
    array_pop($a);
    print_r($a);//輸出:Array ( [0] => Dog [1] => Cat )
    ?>

    14.array_unshift() array_unshift(array,value1,value2,value3...)
    array_unshift() 函數在數組開頭插入一個或多個元素。
    <?php
    $a=array("a"=>"Cat","b"=>"Dog");
    array_unshift($a,"Horse");
    print_r($a);// 輸出:Array ( [0] => Horse [a] => Cat [b] => Dog )
    ?>

    15.array_shift()
    array_shift() 函數刪除數組中的第一個元素,并返回被刪除元素的值。
    <?php
    $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
    echo array_shift($a);
    print_r ($a); //輸出:Dog Array ( [b] => Cat [c] => Horse )
    ?>

    16.array_flip()
    array_flip() 函數返回一個反轉后的數組,如果同一值出現了多次,則最后一個鍵名將作為它的值,所有其他的鍵名都將丟失。
    如果原數組中的值的數據類型不是字符串或整數,函數將報錯。
    <?php
    $a=array(0=>"Dog",1=>"Cat",2=>"Horse");
    print_r(array_flip($a)); //輸出:Array ( [Dog] => 0 [Cat] => 1 [Horse] => 2 )
    ?>

    17.array_key_exists() array_key_exists(key,array)
    array_key_exists() 函數判斷某個數組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false。
    <?php
    $a=array("a"=>"Dog","b"=>"Cat");
    if (array_key_exists("a",$a)){
    echo "Key exists!";
    }else{
    echo "Key does not exist!";
    }

    18.array_reverse() array_reverse(array,preserve) preserve 可選。規定是否保留原始數組的鍵名。可能的值:true 和 false。
    <?php
    $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
    print_r(array_reverse($a)); //輸出:Array ( [c] => Horse [b] => Cat [a] => Dog )
    ?>

    19.end()
    end() 函數將數組內部指針指向最后一個元素,并返回該元素的值(如果成功)。
    <?php
    $people = array("Peter", "Joe", "Glenn", "Cleveland");

    echo current($people) . "<br />";
    echo end($people);
    ?>
    輸出:
    Peter
    Cleveland

    20.current()
    current() 函數返回數組中的當前元素(單元)。
    每個數組中都有一個內部的指針指向它“當前的”元素,初始指向插入到數組中的第一個元素。

    21.sort asort arsort ksort krsort
    (1)sort()
    sort() 函數按升序對給定數組的值排序。注釋:本函數為數組中的單元賦予新的鍵名。原有的鍵名將被刪除。
    <?php
    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    sort($my_array);
    print_r($my_array);// 輸出:Array ( [0] => Cat [1] => Dog [2] => Horse )
    ?>
    (2)asort()
    asort() 函數對數組進行排序并保持索引關系。主要用于對那些單元順序很重要的結合數組進行排序。
    <?php
    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    asort($my_array);
    print_r($my_array); //輸出:Array ( [b] => Cat [a] => Dog [c] => Horse )
    ?>

    (3)arsort() 函數對數組進行逆向排序并保持索引關系。主要用于對那些單元順序很重要的結合數組進行排序。
    <?php
    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    arsort($my_array);
    print_r($my_array); //輸出:Array ( [c] => Horse [a] => Dog [b] => Cat )
    ?>

    (4)ksort()
    ksort() 函數按照鍵名對數組排序,為數組值保留原來的鍵。
    <?php
    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    ksort($my_array);
    print_r($my_array); //輸出:Array ( [a] => Dog [b] => Cat [c] => Horse )
    ?>

    (5)ksort() 函數按照鍵名對數組排序,為數組值保留原來的鍵。
    <?php
    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    krsort($my_array);
    print_r($my_array); //輸出:Array ( [c] => Horse [b] => Cat [a] => Dog )
    ?>

    ---------------------------------------------------------------------------------------------------------------------------------------

    三.字符串函數

    1.strpos()
    strpos() 函數返回字符串在另一個字符串中第一次出現的位置。如果成功,則返回位置,否則返回 false。
    <?php
    echo strpos("Hello world!","wo"); //輸出:6
    ?>

    2.strrpos()
    strrpos() 函數查找字符串在另一個字符串中最后一次出現的位置。如果成功,則返回位置,否則返回 false。
    <?php
    echo strpos("Hello world!","wo"); //輸出:6
    ?>

    3.strlen()
    strlen() 函數返回字符串的長度。
    <?php
    echo strlen("Hello world!"); //輸出:12
    ?>

    4.substr() 截取函數substr(string,start,length)
    substr() 函數返回字符串的一部分。
    具體用法看例子:
    <?php
    $str = 'abcdefg';
    echo substr($str,0).'<br />'; //輸出:abcdefg 解釋:a的下標為0,沒有第三個參數,所以從a開始截取,一直截取最后
    echo substr($str,3).'<br />'; //輸出:defg 解釋:d的下標為3,沒有第三個參數,所以從d開始截取,一直截取最后
    echo substr($str,1,4).'<br />'; //輸出:bcde 解釋:b的下表為1,e的下標為4,所以從b開始,截取到e
    echo substr($str,-2).'<br />'; //輸出:fg 解釋:g的位置為-1,f的位置為-2,沒有第三個參數,所以從f開始截取,一直截取到最后
    echo substr($str,-5,-1).'<br />'; //輸出:cdef 解釋:c的位置為-5,g的位置為-1,截取是從-5的位置開始算,在-1之前的那個位置結束,也就是不包括-1的位置。
    echo substr($str,1,-2).'<br />'; //輸出:bcde 解釋:b的位置為-1,f的位置為-2,b開始截取,截取到f前面的那個止(即不包括-2的這個位置)
    ?>

    5.strstr() strstr(string,search)
    strstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其余部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。
    <?php
    echo strstr("Hello world!","o"); //輸出:o world!
    ?>

    該函數對大小寫敏感。如需進行大小寫不敏感的搜索,請使用 stristr()。

    6.trim()
    trim() 函數從字符串的兩端刪除空白字符和其他預定義字符。
    <?php
    $str = " Hello World! ";
    echo $str.'<br />';
    echo trim($str).'<br />';
    //查看源碼可以看到: Hello World! <br />Hello World!<br />
    ?>

    7.strtoupper()
    strtoupper() 函數把字符串轉換為大寫。
    <?php
    echo strtoupper("Hello WORLD!"); //輸出:HELLO WORLD!
    ?>

    8.strtolower
    strtolower() 函數把字符串轉換為小寫。
    <?php
    echo strtolower("Hello WORLD!"); //輸出:hello world!
    ?>

    9.ucfirst()
    ucfirst() 函數把字符串中的首字符轉換為大寫。
    <?php
    echo ucfirst("hello world"); //輸出:Hello world!
    ?>

    10.ucwords()
    ucwords() 函數把字符串中每個單詞的首字符轉換為大寫。
    <?php
    echo ucfirst("hello world"); //輸出:Hello World!
    ?>

    11.strrev()
    strrev() 函數反轉字符串。
    <?php
    echo strrev("Hello World!"); //輸出:!dlroW olleH
    ?>

    12.round() ceil() intval() floor() 的用法
    round() 函數對浮點數進行四舍五入
    ceil() 進一法取整
    intval() 獲取變量的整數值
    <?php
    echo round(0.60); //輸出:1
    echo round(0.49); //輸出:0
    echo ceil(3.33); //輸出:4
    echo ceil(3.9); //輸出:4
    echo intval(3.33);//輸出:3
    echo intval(3.9); //輸出:3
    ?>
    floor() PHP Math 函數
    floor() 函數向下舍入為最接近的整數。返回不大于 x 的下一個整數,將 x 的小數部分舍去取整。floor() 返回的類型仍然是 float,因為 float 值的范圍通常比 integer 要大。
    具體看例子:
    <?php
    echo(floor(0.60)); //0
    echo(floor(0.40)); //0
    echo(floor(5)); //5
    echo(floor(5.1)); //5
    echo(floor(-5.1)); //-6
    echo(floor(-5.9)) //-6
    ?>

    13.implode()
    implode() 函數把數組元素組合為一個字符串。
    <?php
    $arr = array('Hello','World!','Beautiful','Day!');
    echo implode(" ",$arr); //輸出:Hello World! Beautiful Day!
    ?>

    14.explode()
    explode() 函數把字符串分割為數組。
    <?php
    $str = "Hello world. It's a beautiful day.";
    print_r (explode(" ",$str));
    ?>
    輸出:
    Array(
    [0] => Hello
    [1] => world.
    [2] => It's
    [3] => a
    [4] => beautiful
    [5] => day.
    )

    15.str_pad()
    str_pad() 函數把字符串填充為指定的長度。 str_pad(string,length,pad_string,pad_type)
    string 必需。規定要填充的字符串。
    length 必需。規定新字符串的長度。如果該值小于原始字符串的長度,則不進行任何操作。
    pad_string 可選。規定供填充使用的字符串。默認是空白。
    pad_type 可選。規定填充字符串的那邊。可能的值:
    STR_PAD_BOTH - 填充到字符串的兩頭。如果不是偶數,則右側獲得額外的填充。
    STR_PAD_LEFT - 填充到字符串的左側。
    STR_PAD_RIGHT - 填充到字符串的右側。這是默認的。
    <?php
    $str = "Hello World";
    echo str_pad($str,20,"."); //輸出:Hello World.........
    ?>

    <?php
    $str = "Hello World";
    echo str_pad($str,20,".",STR_PAD_LEFT); //輸出:.........Hello World
    ?>

    16.strip_tags() strip_tags(string,allow) string 必需。規定要檢查的字符串。allow 可選。規定允許的標簽。這些標簽不會被刪除。
    strip_tags() 函數剝去 HTML、XML 以及 PHP 的標簽。
    <?php
    echo strip_tags("Hello <b><i>world!</i></b>","<b>"); //輸出:Hello world!
    ?>

    17.htmlspecialchars() htmlspecialchars(string,quotestyle,character-set)
    htmlspecialchars() 函數把一些預定義的字符轉換為 HTML 實體。
    預定義的字符是:
    & (和號) 成為 &amp;
    " (雙引號) 成為 &quot;
    ' (單引號) 成為 &#039;
    < (小于) 成為 &lt;
    > (大于) 成為 &gt;

    string 必需。規定要轉換的字符串。
    quotestyle 可選。規定如何編碼單引號和雙引號。
    ENT_COMPAT - 默認。僅編碼雙引號。
    ENT_QUOTES - 編碼雙引號和單引號。
    ENT_NOQUOTES - 不編碼任何引號。
    character-set 可選。字符串值,規定要使用的字符集。

    <html>
    <body>
    <?php
    $str = "John & 'Adams'";
    echo htmlspecialchars($str, ENT_COMPAT);
    echo "<br />";
    echo htmlspecialchars($str, ENT_QUOTES);
    echo "<br />";
    echo htmlspecialchars($str, ENT_NOQUOTES);
    ?>
    </body>
    </html>
    瀏覽器輸出:
    John & 'Adams'
    John & 'Adams'
    John & 'Adams'

    如果在瀏覽器中查看源代碼,會看到這些 HTML:
    <html>
    <body>
    John &amp; 'Adams'<br />
    John &amp; &#039;Adams&#039;<br />
    John &amp; 'Adams'
    </body>
    </html>

    18.htmlspecialchars_decode() htmlspecialchars_decode() 函數是 htmlspecialchars() 函數的反函數。
    htmlspecialchars_decode() 函數把一些預定義的 HTML 實體轉換為字符。
    會被解碼的 HTML 實體是:
    &amp; 解碼成 & (和號)
    &quot; 解碼成 " (雙引號)
    ' 解碼成 ' (單引號)
    &lt; 解碼成 < (小于)
    &gt; 解碼成 > (大于)

    <?php
    $str = "This is some &lt;b&gt;bold&lt;/b&gt; text.";
    echo htmlspecialchars_decode($str);
    ?>

    瀏覽器輸出:This is some bold text.
    如果在瀏覽器中查看源代碼,會看到這些 HTML:
    <!DOCTYPE html>
    <html>
    <body>
    This is some <b>bold</b> text.
    </body>
    </html>

    -------------------------------------------------------------------------------------------------------------------------------------

    四 Date / Time 函數
    1.time()
    time() 函數返回當前時間的 Unix 時間戳。
    <?php
    echo time(); //輸出:1424937345
    echo date('Y-m-d H:i:s',time());//輸出:2015-02-26 15:55:32 // date()函數將時間戳轉換為日期格式
    ?>

    2.mktime() 語法:mktime(hour,minute,second,month,day,year,is_dst)
    mktime() 函數返回一個日期的 Unix 時間戳。
    <?php
    echo(date("M-d-Y",mktime(0,0,0,12,36,2001))); //輸出:Jan-05-2002
    echo(date("M-d-Y",mktime(0,0,0,14,1,2001))); //輸出:Feb-01-2002
    echo(date("M-d-Y",mktime(0,0,0,1,1,2001))); //輸出:Jan-01-2001
    echo(date("M-d-Y",mktime(0,0,0,1,1,99))); //輸出:Jan-01-1999
    ?>

    3.microtime()
    microtime() 函數返回當前 Unix 時間戳和微秒數。
    <?php
    echo microtime(); //輸出:0.79456400 1424937755
    ?>

    4.strtotime()
    strtotime() 函數將任何英文文本的日期時間描述解析為 Unix 時間戳。
    <?php
    echo(strtotime("now"));
    echo(strtotime("3 October 2005"));
    echo(strtotime("+5 hours"));
    echo(strtotime("+1 week"));
    echo(strtotime("+1 week 3 days 7 hours 5 seconds"));
    echo(strtotime("next Monday"));
    echo(strtotime("last Sunday"));
    ?>
    輸出:
    1138614504
    1128290400
    1138632504
    1139219304
    1139503709
    1139180400
    1138489200

    5.date()
    date() 函數格式化一個本地時間/日期。
    <?php
    echo date('Y-m-d H:i:s',time());//輸出:2015-02-26 15:55:32
    ?>

    6.date_default_timezone_set() 語法:date_default_timezone_set(timezone)
    date_default_timezone_set() 函數設置用在腳本中所有日期/時間函數的默認時區。
    設置中國時區
    date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亞洲/上海
    date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'為“亞洲/重慶”
    date_default_timezone_set('Asia/Harbin');//其中'Asia/Harbin'為"亞洲/哈爾濱"
    date_default_timezone_set('PRC');//其中PRC為“中華人民共和國”


    7.date_default_timezone_get()
    date_default_timezone_get() 函數返回腳本中所有日期時間函數所使用的默認時區。
    <?php
    echo date_default_timezone_get(); //輸出:Asia/Chongqing
    ?


    8.usleep()
    usleep() 函數延遲代碼執行若干微秒。
    <?php
    echo date('h:i:s') . "<br />"; //開始執行程序
    usleep(10000000); //延遲10秒
    echo date('h:i:s'); //再次開始執行程序
    ?>
    輸出:
    04:28:24
    04:28:34

    9.就時間戳轉換為時間和將時間轉換為時間戳
    (1)UNIX時間戳轉換為日期用函數: date()
    看例子:
    <?php
    echo date("Y-m-d H:i:s", time());
    echo date("Y-m-d H:i:s","1424937345");
    ?>

    2. 日期轉換為UNIX時間戳用函數:strtotime()
    例子:
    <?php
    echo strtotime('2010-03-24 08:15:42');
    ?>


    10. 開發案例
    /*
    現在要實現這樣功能:
    如銀行信用卡還款通知:當程序掃描到用戶需要信用卡還款時,就發送短信通知用戶。
    但為了防止打擾到用戶,只能在白天9:00-18:00之間發送短信,怎么實現這個功能呢?
    */
    <?php
    $y=date("Y",time());
    $m=date("m",time());
    $d=date("d",time());
    $start_time = mktime(9, 0, 0, $m, $d ,$y);
    $end_time = mktime(18, 0, 0, $m, $d ,$y);
    $time = time();
    if($time >= $start_time && $time <= $end_time){
    //send message... 寫發送短信的代碼
    }
    ?>
    -------------------------------------------------------------------------------------------------------------------------------------

    五 其他函數
    1.error_reporting(E_ALL);
    報告所有錯誤

    2.file_exists(path)
    file_exists() 函數檢查文件或目錄是否存在。如果指定的文件或目錄存在則返回 true,否則返回 false。
    <?php
    echo file_exists("test.txt");
    ?>

    3.number_format()
    number_format() 函數通過千位分組來格式化數字。
    <?php
    echo number_format("1000000"); //1,000,000
    echo number_format("1000000",2); //1,000,000.00
    echo number_format("1000000",2,",","."); //1.000.000,00
    ?>

    4.preg_replace()
    mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
    搜索subject中匹配pattern的部分, 以replacement進行替換。
    這個例子剝離多余的空白字符
    <?php
    $str = 'foo o';
    $str = preg_replace('/ss+/', ' ', $str);
    // 將會改變為'foo o'
    echo $str;
    ?>

    5.dirname()
    dirname() 函數返回路徑中的目錄部分。
    <?php
    echo dirname("c:/testweb/home.php"); //輸出:c:/testweb
    echo dirname("/testweb/home.php"); //輸出:testweb
    ?>
    6.__FILE__
    __FILE__ 返回當前 路徑+文件名

    7.dirname(__FILE__)
    當前php程序的就是完整路徑(路徑+文件名)
    <?php
    $the_full_name=__FILE__;
    $the_dir=dirname(__FILE__);
    echo $the_full_name; //返回/home/data/demo/test/a.php
    echo $the_dir; //返回/home/data/demo/test
    ?>
    簡單地說:
    __FILE__ 返回當前 路徑+文件名
    dirname(__FILE__) 返回當前文件路徑的 路徑部分
    dirname(dirname(__FILE__));得到的是文件上一層目錄名(不含最后一個“/”號)

    例如,當前文件是 /home/data/demo/test.php ,則
    __FILE__ 得到的就是完整路徑 即 /home/data/demo/test.php ,而
    dirname(__FILE__)得到路徑部分 即 /home/data/demo (后面沒有“/”號)

    8.$_SERVER['SCRIPT_FILENAME']
    PHP $_SERVER['SCRIPT_FILENAME'] 與 __FILE__ 的區別:
    通常情況下,PHP $_SERVER['SCRIPT_FILENAME'] 與 __FILE__ 都會返回 PHP 文件的完整路徑(絕對路徑)與文件名:
    二者的差別是:$_SERVER['SCRIPT_FILENAME'] 反映的是當前執行程序的絕對路徑及文件名;__FILE__ 反映的是原始文件(被包含文件)的絕對路徑及文件名

    9.$_SERVER['HTTP_HOST']和$_SERVER['PHP_SELF']
    假如命令行的地址是:http://www.baidu.com/index.php
    那么:
    $_SERVER['HTTP_HOST']=='www.baidu.com' //一個是主機地址
    $_SERVER['PHP_SELF']=='/index.php' //腳本文件的絕對路徑

    10.error_log()
    error_log() 函數向服務器錯誤記錄、文件或遠程目標發送一個錯誤。若成功,返回 true,否則返回 false。
    <?php
    $test=2;

    if ($test>1)
    {
    error_log("A custom error has been triggered",
    1,"[email protected]","From: [email protected]");
    }
    ?>
    輸出:
    A custom error has been triggered

    11.ini_set('display_errors', '1');
    PHP ini_set用來設置php.ini的值,在函數執行的時候生效,腳本結束后,設置失效。無需打開php.ini文件,就能修改配置,對于虛擬空間來說,很方便。
    函數格式:string ini_set(string $varname, string $newvalue)
    常見的設置:
    @ ini_set('memory_limit', '64M');
    'menory_limit':設定一個腳本所能夠申請到的最大內存字節數,這有利于寫的不好的腳本消耗服務器上的可用內存。@符號代表不輸出錯誤。
    @ini_set('display_errors', 1);
    ‘display_errors':設置錯誤信息的類別。

    ini_set("display_errors","On"); //顯示所有錯誤信息
    ini_set("display_errors","Off"); //屏蔽所有錯誤信息
    這里要說明的是,通常服務器配置文件中,是屏蔽notice錯誤,只顯示error錯誤,如果是這樣的話,你打開錯誤顯示,也不會顯示notice錯誤

    12.json_decode()和json_encode()
    先看json_encode()
    json_decode — 對 JSON 格式的字符串進行編碼 接受一個 JSON 格式的字符串并且把它轉換為 PHP 變量
    json_decode($data)輸出的是對象,而json_decode("$data",true)是生成PHP關聯數組.
    <?php
    $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
    var_dump(json_decode($json));
    var_dump(json_decode($json, true));
    ?>

    上例將輸出:
    object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
    }

    array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
    }

    在看json_decode()
    json_encode — 對變量進行 JSON 編碼
    該函數只能接受 UTF-8 編碼的數據
    <?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

    echo json_encode($arr);
    ?>
    以上例程會輸出:
    {"a":1,"b":2,"c":3,"d":4,"e":5}

    看一個開發案例(刪除案例):
    (1)放置刪除按鈕:
    <body>
    <a href="javascript:del(<?=$info->c_id?>,<?=$val->c_id?>)">刪除</a>
    </body>
    (2)ajax指定處理器并傳遞數據
    <script>
    function del(cid,b_id){
    if(confirm("您確定要刪除嗎")){
    $.ajax({
    type:"get",
    dataType:"json",
    url:"/demo/del",
    data:{
    "c_id":cid,
    "b_id":b_id
    },
    success: function (msg) {
    if(msg.rs == "success"){
    alert(msg.info);
    window.location.reload();
    }else{
    alert(msg.info);
    }
    }
    });
    }
    }
    </script>
    (3)處理方法
    處理方法就不寫了,處理的結果返回給$res。
    if($res){
    die(json_encode(array("rs"=>'success',"info"=>"刪除成功"))); //json_encode()對變量進行 JSON 編碼
    }else{
    die(json_encode(array("rs"=>'fail',"info"=>'刪除失敗')));
    }


    13.urlencode()和urldecode()
    他們是用來解決網頁URL編碼解碼問題,為的是讓包含中文的URL可以使用。
    <?php
    $str = '我';
    $str1 = urlencode($str);
    $str2 = urldecode($str1);
    echo $str1; // 輸出:%e6%88%91 //編碼
    echo $str2; // 輸出:我 //解碼
    ?>

    14.sprintf()
    sprintf() 函數把格式化的字符串寫入一個變量中。
    <?php
    $transAmt=10000000;
    $transAmt = sprintf('%.2f',$transAmt);
    echo $transAmt; //輸出:10000000.00
    ?>

    15.fopen() fwrite() fclose的用法
    先看個例子:
    <?php
    $path = dirname(__FILE__);
    $paths = $path.'/a.txt';
    $content = '測試';
    $handle = fopen($paths,'w+');
    fwrite($handle, $content);
    fclose($handle);
    ?>
    運行一次,不過在$path路徑下不存在a.txt文件,則會創建a.txt文件,w+是會把文件里面內容清空,重新寫入。每次運行,都會清空原來的a.txt里面的數據,重新寫入。
    如果要追加的方法,即里面內容不清楚,繼續添加,可用a,即,$handle = fopen($paths,'a');
    "r" 只讀方式打開,將文件指針指向文件頭。
    "r+" 讀寫方式打開,將文件指針指向文件頭。
    "w" 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。
    "w+" 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創建之。
    "a" 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
    "a+" 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
    "x"
    創建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。
    這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
    此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。
    "x+"
    創建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創建之。
    這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。
    此選項被 PHP 4.3.2 以及以后的版本所支持,僅能用于本地文件。

    12.file_put_contents()和file_get_contents()的用法
    file_put_contents() 函數把一個字符串寫入文件中。與依次調用 fopen(),fwrite() 以及 fclose() 功能一樣。該函數將返回寫入到文件內數據的字節數
    <?php
    $path = dirname(__FILE__);
    $paths = $path.'/a.txt';
    $content = '測試';
    //$handle = fopen($paths,'w+');
    //fwrite($handle, $content);
    //fclose($handle);
    echo file_put_contents($paths,$content);//輸出:30

    $arr = array('a'=>1,'b'=>2);
    file_put_contents($paths,var_export($arr,true));
    ?>

    file_get_contents() 函數把整個文件讀入一個字符串中。
    <?php
    header('Content-type:text/html;charset=utf-8');
    $path = dirname(__FILE__);
    $paths = $path.'/a.txt';
    $content = '測試';
    file_put_contents($paths,$content);
    $str = file_get_contents($paths);
    echo $str; //輸出:測試
    ?>

    16.flock()
    flock() 函數鎖定或釋放文件。若成功,則返回 true。若失敗,則返回 false。
    flock(file,lock,block)
    file 必需。規定要鎖定或釋放的已打開的文件。flock() 操作的 file 必須是一個已經打開的文件指針。
    lock 必需。規定要使用哪種鎖定類型。
    block 可選。若設置為 1 或 true,則當進行鎖定時阻擋其他進程。
    要取得共享鎖定(讀取的程序),將 lock 設為 LOCK_SH(PHP 4.0.1 以前的版本設置為 1)。
    要取得獨占鎖定(寫入的程序),將 lock 設為 LOCK_EX(PHP 4.0.1 以前的版本中設置為 2)。
    要釋放鎖定(無論共享或獨占),將 lock 設為 LOCK_UN(PHP 4.0.1 以前的版本中設置為 3)。
    如果不希望 flock() 在鎖定時堵塞,則給 lock 加上 LOCK_NB(PHP 4.0.1 以前的版本中設置為 4)。
    <?php
    $file = fopen("test.txt","w+"); //打開
    // 排它性的鎖定
    if (flock($file,LOCK_EX)){ //鎖定后
    fwrite($file,"Write something"); //寫入內容
    // release lock
    flock($file,LOCK_UN); //然后解鎖
    }else{
    echo "Error locking file!";
    }

    fclose($file); //關閉
    ?>

    17.unlink() unlink(filename,context)
    unlink() 函數刪除文件。若成功,則返回 true,失敗則返回 false。
    <?php
    $file = "test.txt";
    if (!unlink($file)){
    echo ("操作錯誤");
    }else{
    echo ("刪除成功");
    }
    ?>

    18.unset()
    unset -- 釋放給定的變量 在 PHP 4 中,unset() 不再是一個真正的函數:它現在是一個語句。這樣就沒有了返回值,試圖獲取 unset() 的返回值將導致解析錯誤。
    <?php
    $arr = array(
    'a'=>1,
    'b'=>2,
    'c'=>3
    );
    unset($arr['b']);
    echo '<pre>';print_r($arr);
    ?>
    輸出:
    Array
    (
    [a] => 1
    [c] => 3
    )

    19.var_export()
    var_export — 輸出或返回一個變量的字符串表示
    此函數返回關于傳遞給該函數的變量的結構信息,它和 var_dump() 類似,不同的是其返回的表示是合法的 PHP 代碼。您可以通過將函數的第二個參數設置為 TRUE,從而返回變量的表示。
    <?php
    $arr = array(
    'a'=>1,
    'b'=>2,
    'c'=>3
    );
    var_dump($arr); //輸出: array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) }
    var_export($arr); //輸出: array ( 'a' => 1, 'b' => 2, 'c' => 3, )

    $v = var_export($arr,TRUE); //第二個參數設置為 TRUE,從而返回變量的表示
    echo $v; //輸出 array ( 'a' => 1, 'b' => 2, 'c' => 3, )
    ?>

    20.serialize()和unserialize()
    serialize — 產生一個可存儲的值的表示 serialize() 返回字符串,此字符串包含了表示 value 的字節流,可以存儲于任何地方。 這有利于存儲或傳遞 PHP 的值,同時不丟失其類型和結構。
    unserialize — 從已存儲的表示中創建 PHP 的值。 想要將已序列化的字符串變回 PHP 的值,可使用 unserialize()。
    具體看例子:
    <?php
    $str = 'abcdefg';
    $str1 = serialize($str);
    $str2 = unserialize($str1);
    echo $str1; //輸出:s:7:"abcdefg";
    echo $str2; //輸出:abcdefg

    $arr = array(
    'a'=>1,
    'b'=>2,
    'c'=>3
    );
    $string = serialize($arr);
    $arr2 = unserialize($string);
    echo $string; //輸出:a:3:{s:1:"a";i:1;s:1:"b";i:2;s:1:"c";i:3;}
    print_r($arr2); //輸出:Array ( [a] => 1 [b] => 2 [c] => 3 )
    ?>


    21.rand()
    rand() 函數返回隨機整數。
    <?php
    echo rand(0,100); // 輸出0-100的隨機整數
    ?>

    22.preg_match()
    http://developer.51cto.com/art/200911/165362.htm

    $num = $this->input->post('buy_num');
    $preg = '/^[1-9][0-9]*$/';
    if(!preg_match($preg, $ct_id) || !preg_match($preg, $num)){
    echo '<script type="text/javascript">alert("參數錯誤!");history.back();</script>';
    die();
    }
    23.str_replace()
    str_replace() 函數使用一個字符串替換字符串中的另一些字符。
    <?php
    echo str_replace("world","John","Hello world!"); //輸出:Hello John!
    ?>
    <?php
    $str = '123456789';
    $new_str = str_replace("'","",$str);
    echo $new_str;//輸出123456789 //將' 替換為空
    ?>


    24.preg_match()
    在php中preg_match()函數是用來執行正則表達式的一個常用的函數
    例子1:
    如在開發中要判斷表達提交過來的手機號碼是否符合我們的要求,可用他來判斷
    <?php
    if(!preg_match("/^1[3578][0-9]{9}$/", $_POST['phone_tel'])){
    $this->show_warning('phone_error');
    return;
    }
    ?>
    例子2:
    判斷是否為郵箱
    if(!preg_match('/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/', $_POST['email'])){
    echo "<script>alert('郵箱格式錯誤');location.href='/xxx'</script>";
    }

    25.curl_init() url_init -- 初始化一個CURL會話
    curl_init()函數將初始化一個新的會話,返回一個CURL句柄供curl_setopt(), curl_exec(),和 curl_close() 函數使用。如果可選參數被提供,那么CURLOPT_URL選項將被設置成這個參數的值。你可以使用curl_setopt()函數人工設置。
    <?php
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, "網站地址");
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_exec ($ch);
    curl_close ($ch);
    ?>

    <?php
    public function request_by_curl($remote_server, $post_array)
    {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER,0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $remote_server);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
    echo 'Errno'.curl_error($ch);//捕抓異常
    exit;
    //print_r(curl_getinfo($ch));
    }
    curl_close($ch);
    return $result;
    }
    ?>


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 青草av.久久免费一区 | 毛片免费观看视频 | www国产成人免费观看视频,深夜成人网 | 暴力强行进如hdxxx | 91情侣在线偷精品国产 | 中文字幕线观看 | 国产精品视频一区二区三区综合 | 一区二区三区日韩电影 | 久久成人福利 | 日本精品一区二区 | 黄色网址免费入口 | 国产中出视频 | 免费黄色一级网站 | av电影免费播放 | 黄色大片在线免费观看 | 欧美伦交 | 99最新地址| 久久久久久久久国产 | 国产无限资源在线观看 | 成年免费视频黄网站在线观看 | 欧产日产国产精品乱噜噜 | 亚洲一区二区 | 羞羞漫画无遮挡观看 | 鲁人人人鲁人人鲁精品 | 2级毛片| 把娇妻调教成暴露狂 | 一级做a爱片久久毛片a高清 | 爽爽淫人网 | 日本黄色大片免费 | 九九视屏| 久久男人视频 | 久久国产成人午夜av浪潮 | 黄色欧美精品 | 亚洲男人的天堂在线视频 | 久久久久久久亚洲精品 | 一级做a爰片性色毛片2021 | 毛片国产 | 久久99国产精品久久 | 成人一区二区三区在线 | 海外中文字幕在线观看 | 久久久中精品2020中文 |