明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

PHP4新函數(shù)集錦

[摘要]一、輸出信息控制函數(shù) 這些函數(shù)可以讓你控制你的腳本輸出的內(nèi)容.可以用于許多不同的情況,特別是在你的腳本已經(jīng)輸出信息后需要發(fā)送文件頭新的情況. 輸出控制函數(shù)不對(duì)使用 header() 或 s...
一、輸出信息控制函數(shù)


這些函數(shù)可以讓你控制你的腳本輸出的內(nèi)容.可以用于許多不同的情況,特別是在你的腳本已經(jīng)輸出信息后需要發(fā)送文件頭新的情況. 輸出控制函數(shù)不對(duì)使用 header() 或 setcookie() 發(fā)送的文件頭信息產(chǎn)生影響,只對(duì)那些類似于 echo() 和 PHP 代碼的數(shù)據(jù)塊有作用.

例 1. 控制輸出

<?php

ob_start();
echo "Hellon";

setcookie ("cookiename", "cookiedata");

ob_end_flush();

?>

在上面的例子中,使用 echo() 的輸出內(nèi)容將會(huì)保存在輸出緩沖區(qū)中,直到調(diào)用了 ob_end_flush(). 這樣做有意義的地方是,調(diào)用 setcookie() 的內(nèi)容被成功的存儲(chǔ)在 cookie 里面而不會(huì)引起錯(cuò)誤. (正常情況下,你不可以在有數(shù)據(jù)已經(jīng)發(fā)送后再發(fā)送文件頭信息到用戶瀏覽器.)

相關(guān)函數(shù) header() and setcookie().

韓數(shù)列表
flush — 刷新輸出緩沖區(qū)
保存在輸出緩沖區(qū)的內(nèi)容會(huì)被發(fā)送到瀏覽器

ob_start — 打開(kāi)輸出緩沖區(qū)
這樣所有的輸出信息不在直接發(fā)送到瀏覽器,而是保存在輸出緩沖區(qū)里面

ob_get_contents — 返回輸出緩沖區(qū)的內(nèi)容
如果你想以后處理輸出的內(nèi)容,可以調(diào)用這個(gè)函數(shù)保留一個(gè)備份

ob_get_length — 返回輸出緩沖區(qū)的內(nèi)容長(zhǎng)度

ob_end_flush — 結(jié)束(發(fā)送)輸出緩沖區(qū)的內(nèi)容,關(guān)閉輸出緩沖區(qū)

ob_end_clean — 刪除(放棄)輸出緩沖區(qū)的內(nèi)容,關(guān)閉輸出緩沖區(qū)
如果你的程序發(fā)現(xiàn)輸出內(nèi)容有問(wèn)題,可以放棄所有輸出內(nèi)容,可以防止泄漏某些秘密信息

ob_implicit_flush — 打開(kāi)或關(guān)閉直接刷新
打開(kāi)后,每個(gè)腳本輸出都直接發(fā)送到瀏覽器,不再需要調(diào)用 flush()


二、取得當(dāng)前目錄


這是 php4 的新的目錄函數(shù)!

string getcwd(void)

返回為當(dāng)前腳本路徑的字符串!

三、 解決腳本超時(shí)

在 php 的配置/信息里面有一個(gè)設(shè)置腳本執(zhí)行時(shí)間的函數(shù),具體情況如下:

set_time_limit
配置該頁(yè)最久執(zhí)行時(shí)間。

語(yǔ)法: void set_time_limit(int seconds);

返回值: 無(wú)

函數(shù)種類: PHP 系統(tǒng)功能

內(nèi)容說(shuō)明

本函數(shù)用來(lái)配置該頁(yè)最久執(zhí)行時(shí)間。默認(rèn)值是 30 秒,在 php.ini 中的 max_execution_time 變量配置,若配置為 0 則不限定最久時(shí)間。當(dāng)執(zhí)行到該函數(shù)時(shí),才開(kāi)始計(jì)算。例如,若默認(rèn)是 30 秒,而在執(zhí)行到該函數(shù)前已執(zhí)行了 25 秒,而用本函數(shù)改為 20 秒,則該頁(yè)面最長(zhǎng)執(zhí)行時(shí)間為 45 秒。

使用實(shí)例:
我的文章搜索函數(shù)由于文章數(shù)目的增加,經(jīng)常會(huì)產(chǎn)生超時(shí)錯(cuò)誤,我把腳本執(zhí)行時(shí)間改為200秒后情況大大緩解!


<?
set_time_limit(200);
?>


四、 數(shù)組遍歷

· foreach
在 PHP4中,新增了一個(gè)循環(huán)語(yǔ)句 foreach,它很像是 perl和其它的語(yǔ)言,你可以給它一個(gè)陣列,讓它來(lái)取出陣列的值。它有下列這二個(gè)語(yǔ)法,第二個(gè)語(yǔ)法是較次要的,但是可用來(lái)作為第一個(gè)語(yǔ)法的延伸。
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
第一個(gè)形式的循環(huán),它會(huì)在每個(gè)循環(huán)上,將目前元素的值分配給 $value,并且向后移動(dòng)陣列的內(nèi)部指針,所以在下一個(gè)循環(huán)的時(shí)候,你就會(huì)看到下一個(gè)元素了。
第二個(gè)形式的循環(huán)和第一個(gè)是相同的,不同的是它會(huì)在每個(gè)循環(huán)將目前元素的索引值分配給變量 $key。
注意 : 當(dāng) foreach第一次開(kāi)始執(zhí)行的時(shí)候,它會(huì)把陣列的內(nèi)部指針重新設(shè)定到陣列的第一個(gè)元素,意思是說(shuō),在使用 foreach之前,你不必再去調(diào)用 reset( )。
注意 : foreach的功能是復(fù)制,而不是陣列它本身,因此并不會(huì)改變陣列指針
下面范例的功能都是相同的 :


<?php
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Value: $value<br>
";
}

foreach ($arr as $value) {
echo "Value: $value<br>
";
}
?>


下面范例的功能也都是相同的 :


<?php
reset ($arr);
while (list($key, $value) = each ($arr)) {
echo "Key: $key; Value: $value<br>
";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br>
";
}
?>


以下的范例將說(shuō)明 foreach的用法 :


<?php
/* foreach example 1: value only */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
print "Current value of $a: $v.
";
}

/* foreach example 2: key and value */
$a = array (
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach($a as $k => $v) {
print "$a[$k] => $v.
";
}
?>




標(biāo)簽:PHP4新函數(shù)集錦