發新話題

[分享] 《PHP》『雜項函式庫』

《PHP》『雜項函式庫』func_get_args --- 傳回包含函式的參數列表的陣列

func_get_args

(PHP4 >= 4.0b4)

func_get_args ---  傳回包含函式的參數列表的陣列

語法 : int func_get_args (void )

說明 :

傳回一陣列,陣列的各個元素相當於是目前使用者定義函式的參數列的數目。如果是從函式定義的外面來呼叫此函式,則func_get_arg( )將會產生警告。

Example :

<?php

   function foo() {

                $numargs = func_num_args();

                echo "Number of arguments: $numargs<br>\n";

                if ($numargs >= 2) {

                            echo "Second argument is: " . func_get_arg (1) . "<br>\n";

               }

               $arg_list = func_get_args();

               for ($i = 0; $i < $numargs; $i++) {

                            echo "Argument $i is: " . $arg_list[$i] . "<br>\n";

              }

  }

  foo (1, 2, 3);

?>

func_get_args( )可以用來結合func_num_args( )和func_get_arg( )來允許使用者定義的函式接受variable-length參數列表。

注意 : 此函式是PHP4中新增的函式


TOP

《PHP》『雜項函式庫』func_num_args --- 傳回傳遞到函式的參數數目

func_num_args

(PHP4 >= 4.0b4)

func_num_args ---  傳回傳遞到函式的參數數目

語法 : int func_num_args (void )

說明 :

傳回傳遞到目前使用者定義函式的參數數目。如果是從函式定義的外面來呼叫此函式,則func_get_arg( )將會產生警告。

Example :

<?php

   function foo() {

                $numargs = func_num_args();

                echo "Number of arguments: $numargs\n";

   }

   foo (1, 2, 3);     // Prints 'Number of arguments: 3'

?>

func_num_args( )可以用來結合func_get_arg( )和func_get_args( )來允許使用者定義的函式接受variable-length參數列表。

注意 : 此函式是PHP4中新增的函式

TOP

《PHP》『雜項函式庫』function_exists --- 檢查函式是否已經定義

function_exists

(PHP3 >= 3.0.7 , PHP4)

function_exists ---  檢查函式是否已經定義

語法 : int function_exists (string function_name)

說明 :

檢查函式名稱function_name是否已經定義了,如果找到給予的函式名稱則傳回true,否則傳回false。

TOP

《PHP》『雜項函式庫』get_browser --- 識別使用者的瀏灠器的能力

get_browser

(PHP3 , PHP4)

get_browser ---  識別使用者的瀏灠器的能力

語法 : object get_browser ([string user_agent])

說明 :

get_browser( )試著去測定使用者的瀏灠器的能力,這是查詢browscap.ini檔案中,瀏灠器的資訊。預設上是使用$HTTP_USER_AGENT的值,不過你可以傳遞參數user_agent來改變它。

所傳回的資訊是一物件型態,代表著各種的資料元素,例如 : 瀏灠器的較大和較小的版本與ID字串,JavaScript,cookies等等。

下面範例顯示獲得使用者的瀏灠器的所有變數資訊 :

Example :

<?php

   function list_array ($array) {

                while (list ($key, $value) = each ($array)) {

                           $str .= "<b>$key:</b> $value<br>\n";

                 } return $str;

   }

   echo "$HTTP_USER_AGENT<hr>\n";

   $browser = get_browser();

   echo list_array ((array) $browser);

?>

上面範例的輸出將會像是以下這樣 :

Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr>

<b>browser_name_pattern:</b> Mozilla/4\.5.*<br>

<b>parent:</b> Netscape 4.0<br>

<b>platform:</b> Unknown<br>

<b>majorver:</b> 4<br>

<b>minorver:</b> 5<br>

<b>browser:</b> Netscape<br>

<b>version:</b> 4<br>

<b>frames:</b> 1<br>

<b>tables:</b> 1<br>

<b>cookies:</b> 1<br>

<b>backgroundsounds:</b> <br>

<b>vbscript:</b> <br>

<b>javascript:</b> 1<br>

<b>javaapplets:</b> 1<br>

<b>activexcontrols:</b> <br>

<b>beta:</b> <br> <b>crawler:</b> <br>

<b>authenticodeupdate:</b> <br>

<b>msn:</b> <br>

為了使它能運作,你的browscap結構檔必須指到正確的browscap.ini的位置

TOP

《PHP》『雜項函式庫』ignore_user_abort - 設定是否用戶端失去連線時將終止程式執行

ignore_user_abort

(PHP3 >= 3.0.7 , PHP4 >= 4.0b4)

ignore_user_abort ---  設定是否用戶端失去連線時將終止程式執行

語法 : int ignore_user_abort ([int setting])

說明 :

這個函式設定是否用戶端(client)失去連線時,將終止程式的執行。它會傳回先前的設定值,而且也可以以無參數的方式來呼叫此函式,這樣能不改變目前的設定值,並且傳回目前的設定值。

TOP

《PHP》『雜項函式庫』iptcparse --- 剖析二進制IPTC區塊成為它的單一旗標

iptcparse

(PHP3 >= 3.0.6 , PHP4)

iptcparse ---  剖析二進制IPTC區塊成為它的單一旗標

語法 : array iptcparse (string iptcblock)

說明 :

這個函式剖析一個二進制IPTC區塊(block)成為它的單一旗標,它所傳回的陣列是以標籤標誌(tagmarker)為索引,陣列的值為其值。如果沒有找到IPTC資料或是錯誤時則傳回false。

TOP

《PHP》『雜項函式庫』leak --- 滲漏記憶體

leak

(PHP3 , PHP4)

leak ---  滲漏記憶體

語法 : void leak (int bytes)

說明 :

leak( )滲漏指定的記憶體總數。

當各個請求完成時,將自動地清除"leaked"記憶體。

TOP

《PHP》『雜項函式庫』pack --- 包裹資料成為二進制字串

pack

(PHP3 , PHP4)

pack ---  包裹資料成為二進制字串

語法 : string pack (string format [, mixed args ...])

說明 :

依照參數format來包裹給予的參數成為二進制字串,傳回二進制字串。

這個函式的構想是取自Perl,而且所有的格式碼(formatting code)都一樣,可是確缺少了有一些格式碼,像是Perl的 "u" 格式碼。格式化字串是由格式碼所構成,跟隨一個非必需的 repeater參數,repeater參數可以是個整數值或是 *。參數format為 a , A , h , H時,repeat 計算一個資料參數取多少字元。參數format為@時,它是個放置下一個資料的對位置。否則,repeat 計算指定消耗(consumed)多少資料參數,並且包裹成二進制字串。目前format的格式有 :

a  --  NULL填塞字串

A  --  SPACE填塞字串

h  --  十六進位字串,開始為低字元

H  --  十六進位字串,開始為高字元

c  --  符號字元

C  --  無符號字串

s  --  符號短的(永遠是16位元,機器位元組順序)

S  --  無符號短的(永遠是16位元,機器位元組順序)

n  --  無符號短的(永遠是16位元,大的位元組在字尾的順序)

v --  無符號短的(永遠是16位元,小的位元組在字尾的順序)

i  --  符號整數(機器依靠大小和位元組順序)

I --  無符號整數(機器依靠大小和位元組順序)

l  --  符號長整數(永遠是32位元,機器位元組順序)

L  --  無符號長整數(永遠是32位元,機器位元組順序)

N  --  無符號長整數(永遠是32位元,大的位元組在字尾的順序)

V  --  無符號長整數(永遠是32位元,小的位元組在字尾的順序)

f  --  浮點數(機器依靠大小和表示)

d  --  倍浮點數(機器依靠大小和表示)

x  --  NULL位元組

X  --  退後一位元組

@  --  填滿NULL到對位置

Example :

<?php

    $binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);

?>

二進制字串的結果將會是6個位元組長而且包含位元組順序0x12, 0x34, 0x78, 0x56, 0x41, 0x42

注意 : pack( )符號和無符號的區別只對unpack( )有作用

TOP

《PHP》『雜項函式庫』register_shutdown_function - 設定程式執行完後執行的函式

register_shutdown_function

(PHP3 >= 3.0.4 , PHP4)

register_shutdown_function ---  設定程式執行完後執行的函式

語法 : int register_shutdown_function (string func)

說明 :

當程式處理完成時,執行函式名為func的函式。

TOP

《PHP》『雜項函式庫』serialize --- 產生一個可儲存的值的表示

serialize

(PHP3 >= 3.0.5 , PHP4)

serialize ---  產生一個可儲存的值的表示

語法 : string serialize (mixed value)

說明 :

serialize( )傳回一個包含由value所表示的byte-stream字串,它能儲存在任何地方。

這可用來儲存或傳遞PHP的值,而不失去它們的型態和結構。

使用unserialize( )能使serialized字串再次成為原來PHP的值。serialize( )能處理的型態有integer、double、string、array(多面的)、object(物件的屬性將會serialized,但方法則會lose)

Example :

<?php

   // $session_data contains a multi-dimensional array with session

   // information for the current user. We use serialize() to store

   // it in a database at the end of the request.

   $conn = odbc_connect ("webdb", "php", "chicken");

   $stmt = odbc_prepare ($conn, "UPDATE sessions SET data = ? WHERE id = ?");

   $sqldata = array (serialize($session_data), $PHP_AUTH_USER);

   if (!odbc_execute ($stmt, &$sqldata)) {

               $stmt = odbc_prepare($conn, "INSERT INTO sessions (id, data) VALUES(?, ?)");

               if (!odbc_execute($stmt, &$sqldata)) {

                        /* Something went wrong. Bitch, whine and moan. */

               }

    }

?>

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。