PHP4手册:函数库及函数(二十九) 杂项函式库


--------------------------------------------------------------------------------
杂项函式库
--------------------------------------------------------------------------------
本函式库共有 19 个函式
所有很难在 PHP 函式中归类的函式都属于本函式库。
connection_aborted: 若连结中断则传回 true。
connection_status: 取得连线状态。
connection_timeout: 若超过 PHP 程式执行时间则传回 true。
eval: 将值代入字串之中。
extract: 汇入阵列到符号表。
die: 输出讯息并中断 PHP 程式。
exit: 结束 PHP 程式。
function_exists: 查核函式是否已定义。
ignore_user_abort: 连线中断后程式是否执行。
iptcparse: 使用 IPTC 模组解析位元资料。
leak: 泄出记忆体。
pack: 压缩资料到位元字串之中。
register_shutdown_function: 定义 PHP 程式执行完成后执行的函式。
serialize: 储存资料到系统中。
sleep: 暂停执行。
unpack: 解压缩位元字串资料。
unserialize: 取出系统资料。
uniqid: 产生唯一的值。
usleep: 暂停执行。
--------------------------------------------------------------------------------
函式:connection_aborted()
--------------------------------------------------------------------------------
杂项函式库
connection_aborted
若连结中断则传回 true。
语法: int connection_aborted(void);
传回值: 整数
函式种类: 网路系统
内容说明
若与客户端 (Client) 失去连结则传回 true 值。本函式不须输入参数。
--------------------------------------------------------------------------------
函式:connection_status()
--------------------------------------------------------------------------------
杂项函式库
connection_status
取得连线状态。
语法: int connection_status(void);
传回值: 整数
函式种类: 网路系统
内容说明
本函式可传回连线状态。使用时不须输入参数。
--------------------------------------------------------------------------------
函式:connection_timeout()
--------------------------------------------------------------------------------
杂项函式库
connection_timeout
若超过 PHP 程式执行时间则传回 true。
语法: int connection_timeout(void);
传回值: 整数
函式种类: PHP 系统功能
内容说明
若 PHP 程式 (script) 执行时间超过设定值则传回 true。使用时不须输入参数。
--------------------------------------------------------------------------------
函式:eval()
--------------------------------------------------------------------------------
杂项函式库
eval
将值代入字串之中。
语法: void eval(string code_str);
传回值: 无
函式种类: 资料处理
内容说明
本函式可将字串之中的变数值代入,通常用在处理资料库的资料上。参数 code_str 为欲处理的字串。值得注意的是待处理的字串要符合 PHP 的字串格式,同时在结尾处要有分号。使用本函式处理后的字串会沿续到 PHP 程式结束。
使用范例
$string = '杯子';
$name = '咖啡';
$str = '这个 $string 中装有 $name.
';
echo $str;
eval( "\$str = \"$str\";" );
echo $str;
?>
本例的传回值为
这个 $string 中装有 $name.
这个 杯子 中装有 咖啡.
--------------------------------------------------------------------------------
函式:extract()
--------------------------------------------------------------------------------
杂项函式库
extract
汇入阵列到符号表。
语法: void extract(array var_array, int [extract_type], string [prefix]);
传回值: 无
函式种类: 资料处理
内容说明
本函式用来汇入阵列变数到目前使用的符号表之中。参数 var_array 为待汇入的阵列变数。参数 extract_type 为输出的型态,内定值为 EXTR_OVERWRITE,见下表
EXTR_OVERWRITE 遇相同的变数名则取而代之。
EXTR_SKIP 遇相同的变数名则略过不取代。
EXTR_PREFIX_SAME 遇相同的变数名则取新变数名称。
EXTR_PREFIX_ALL 全部取新的变数名称。
参数 prefix 为参数 extract_type 值为 EXTR_PREFIX_SAME 或者 EXTR_PREFIX_ALL 时,用来加在变数名称前的字串。
使用范例
本例传回值为 红色, 大号, 弧型, 中号,其中的 size 变数不变。
$size = "大号";
$var_array = array("color" => "红色",
"size" => "中号",
"shape" => "弧型");
extract($var_array, EXTR_PREFIX_SAME, "new");
print "$color, $size, $shape, $new_size\n";
?>
--------------------------------------------------------------------------------
函式:die()
--------------------------------------------------------------------------------
杂项函式库
die
输出讯息并中断 PHP 程式。
语法: void die(string message);
传回值: 无
函式种类: PHP 系统功能
内容说明
本函式将送出字串到浏览器并中断 PHP 程式 (Script)。参数 message 为欲送出的字串。
使用范例
下例中,若无法开启 /etc/shadow 时,传给浏览器抱歉,无法开启: /etc/shadow。
$filename = "/etc/shadow";
$file = @fopen($filename, 'r')
or die("抱歉,无法?/font>}启: $filename");
echo "本行不会执行";
?>
--------------------------------------------------------------------------------
函式:exit()
--------------------------------------------------------------------------------
杂项函式库
exit
结束 PHP 程式。
语法: void exit(void);
传回值: 无
函式种类: PHP 系统功能
内容说明
本函式直接结束 PHP 程式 (Script)。不需输入参数,亦无传回值。
--------------------------------------------------------------------------------
函式:function_exists()
--------------------------------------------------------------------------------
杂项函式库
function_exists
查核函式是否已定义。
语法: int function_exists(string function_name);
传回值: 整数
函式种类: PHP 系统功能
内容说明
本函式用来检查指定的函式是否已经定义。参数 function_name 为待检查的函式名称。若已定义指定的函式则传回 true 值,其它情形均传回 false 值。
--------------------------------------------------------------------------------
函式:ignore_user_abort()
--------------------------------------------------------------------------------
杂项函式库
ignore_user_abort
连线中断后程式是否执行。
语法: int ignore_user_abort(int [setting]);
传回值: 整数
函式种类: PHP 系统功能
内容说明
本函式设定或取得使用端连线中断后,PHP 程式是否仍继续执行。内定值为中断连线后就停止执行。在 PHP 设定档中 (php3.ini/php.ini) 的 ignore_user_abort 选项就是设定处。本功能在 PHP 3.0.7 版之后才开始提供。
--------------------------------------------------------------------------------
函式:iptcparse()
--------------------------------------------------------------------------------
杂项函式库
iptcparse
使用 IPTC 模组解析位元资料。
语法: array iptcparse(string iptcblock);
传回值: 阵列
函式种类: 图形处理
内容说明
本函式利用 IPTC 模组解析图形的位元资料中的 APP13 资讯。IPTC 模组可到 http://www.xe.net/iptc 下载。若执行失败或者没有 APP13 的 IPTC 资料时传回 false。
使用范例
$size = GetImageSize("testimg.jpg",&$info);
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
var_dump($iptc);
}
?>
--------------------------------------------------------------------------------
函式:leak()
--------------------------------------------------------------------------------
杂项函式库
leak
泄出记忆体。
语法: void leak(int bytes);
传回值: 无
函式种类: PHP 系统功能
内容说明
本函式用来系统除错使用。通常在执行某一回应后可自动清除泄出的记忆体。
--------------------------------------------------------------------------------
函式:pack()
--------------------------------------------------------------------------------
杂项函式库
pack
压缩资料到位元字串之中。
语法: string pack(string format, mixed [args]...);
传回值: 字串
函式种类: 资料处理
内容说明
本函式用来将资料压缩打包到位元的字串之中。本函式和 Perl 的同名函式功能用法完全相同。参数 format 为压缩的格式,见下表
a 将字串空白以 NULL 字元填满
A 将字串空白以 SPACE 字元 (空格) 填满
h 十六进位字串,低位元在前
H 十六进位字串,高位元在前
c 有号字元
C 无号字元
s 有号短整数 (十六位元,依计算机的位元顺序)
S 无号短整数 (十六位元,依计算机的位元顺序)
n 无号短整数 (十六位元, 高位元在后的顺序)
v 无号短整数 (十六位元, 低位元在后的顺序)
i 有号整数 (依计算机的顺序及范围)
I 无号整数 (依计算机的顺序及范围)
l 有号长整数 (卅二位元,依计算机的位元顺序)
L 无号长整数 (卅二位元,依计算机的位元顺序)
N 无号短整数 (卅二位元, 高位元在后的顺序)
V 无号短整数 (卅二位元, 低位元在后的顺序)
f 单精确浮点数 (依计算机的范围)
d 倍精确浮点数 (依计算机的范围)
x 空位元
X 倒回一位元
@ 填入 NULL 字元到绝对位置
使用范例
print(pack("cccc", 65, 66, 67, 68));
echo "
\n";
print(pack("h10", "778899aabb"));
echo "
\n";
print(pack("H10", "778899aabb"));
?>
参考
unpack()
--------------------------------------------------------------------------------
函式:register_shutdown_function()
--------------------------------------------------------------------------------
杂项函式库
register_shutdown_function
定义 PHP 程式执行完成后执行的函式。
语法: int register_shutdown_function(string func);
传回值: 整数
函式种类: PHP 系统功能
内容说明
本函式向系统定义 PHP 程式 (Script) 执行结束之后所要执行的函式。当执行该指定的函式时,由于无法看到传回值,因此除错较困难。
--------------------------------------------------------------------------------
函式:serialize()
--------------------------------------------------------------------------------
杂项函式库
serialize
储存资料到系统中。
语法: string serialize(mixed value);
传回值: 字串
函式种类: 资料处理
内容说明
本函式可储存资料到系统中。储存的资料以 byte-stream 方式存放。变数 value 为混合型态,包括整数、倍精确浮点数字串、阵列以及物件的属性 (物件的方法无法储存)。
参考
unserialize()
--------------------------------------------------------------------------------
函式:sleep()
--------------------------------------------------------------------------------
杂项函式库
sleep
暂停执行。
语法: void sleep(int seconds);
传回值: 无
函式种类: PHP 系统功能
内容说明
本函式可暂时使程式停止执行。参数 seconds 为要暂停的秒数。
参考
usleep()
--------------------------------------------------------------------------------
函式:unpack()
--------------------------------------------------------------------------------
杂项函式库
unpack
解压缩位元字串资料。
语法: string pack(string format, mixed [args]...);
传回值: 阵列
函式种类: 资料处理
内容说明
本函式用来将位元的字串的资料解压缩。本函式和 Perl 的同名函式功能用法完全相同。参数 format 为压缩的格式,参见 pack 的格式表。
参考
pack()
--------------------------------------------------------------------------------
函式:unserialize()
--------------------------------------------------------------------------------
杂项函式库
unserialize
取出系统资料。
语法: mixed unserialize(string str);
传回值: 混合型态资料
函式种类: 资料处理
内容说明
本函式可取出系统资料。储存的资料以 byte-stream 方式存放。传回值为混合型态,包括整数、倍精确浮点数字串、阵列以及物件的属性 (物件的方法无法储存)。
使用范例
$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
// 若执行则 $session_data 设为空值
$session_data = array();
} else {
// 取出 $tmp[0] 值
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// 出现错误则将 $session_data 清除
$session_data = array();
}
}
?>
参考
serialize()
--------------------------------------------------------------------------------
函式:uniqid()
--------------------------------------------------------------------------------
杂项函式库
uniqid
产生唯一的值。
语法: string uniqid(string prefix);
传回值: 字串
函式种类: 编码处理
内容说明
本函式会依据当时的毫秒以及指定的前置字串产生一个独一无二的字串。参数 prefix 为前置的字串,最多可达 114 字元。
使用范例
本例产生 32 个字元的独一无二字串。
$token = md5(uniqid(rand()));
echo $token;
?>
--------------------------------------------------------------------------------
函式:usleep()
--------------------------------------------------------------------------------
杂项函式库
usleep
暂停执行。
语法: void usleep(int micro_seconds);
传回值: 无
函式种类: PHP 系统功能
内容说明
本函式可暂时使程式停止执行。参数 micro_seconds 为要暂停的毫秒数。
参考
sleep()