1. 請(qǐng)對(duì)POSIX風(fēng)格和兼容Perl風(fēng)格兩種正則表達(dá)式的主要函數(shù)進(jìn)行類比說(shuō)明
ereg preg_match
ereg_replace preg_replace
2. 請(qǐng)說(shuō)明在php.ini中safe_mode開(kāi)啟之后對(duì)于PHP系統(tǒng)函數(shù)的影響
safe_mode是提供一個(gè)基本安全的共享環(huán)境。在一個(gè)多用戶共享的phpweb服務(wù)器上,當(dāng)這臺(tái)服務(wù)器開(kāi)啟了safe_mode模式,有以下函數(shù)將會(huì)受到影響。首先,一下嘗試訪問(wèn)文件系統(tǒng)的函數(shù)將會(huì)被限制,運(yùn)行服務(wù)器的用戶id,如果想要嘗試操作某個(gè)文件,必須要用戶該文件的讀取或者寫入的訪問(wèn)權(quán)限。
因此,在safe_mode打開(kāi)的情況下,下列函數(shù)將會(huì)收到限制:
ckdir,move_uploaded_file,chgrp,parse_ini_file,chown,rmdir,copy,rename,fopen,
require,highlight_file,show_source,include,symlink,link,touch,mkdir,unlink
以上都是跟操作文件系統(tǒng)有關(guān)的函數(shù),除此之外,一些php擴(kuò)展的函數(shù)也會(huì)受到限制,不能在程序里面直接加載擴(kuò)展,只能到php.ini里加載,而且php如果需要執(zhí)行操作系統(tǒng)的程序時(shí),必須在safe_mode_exec_dir中指定程序的路徑,否則執(zhí)行將失敗。此外還有exec,shell_exec,pasathru,system,popen等函數(shù)會(huì)收到限制
3. PHP5中魔術(shù)方法函數(shù)有哪幾個(gè),請(qǐng)舉例說(shuō)明各自的用法
__sleep
__wakeup
__toString
__set_state
__construct,
__destruct
__call,
__get,
__set,
__isset,
__unset
__sleep,
__wakeup,
__toString,
__set_state,
__clone
__autoload
4. 請(qǐng)寫出讓,并說(shuō)明如何在命令行下運(yùn)行PHP腳本(寫出兩種方式)同時(shí)向PHP腳本傳遞參數(shù)?
$PHP_HOME/bin/php -r 'echo $argv[1];' hello
$PHP_HOME/bin/php hello.php hello
window下,假設(shè)php安裝目錄為c:\program files\php5\,那么使用命令窗口進(jìn)入到該路徑下,敲入php hello.php回車,則會(huì)執(zhí)行當(dāng)前路徑下的hello.php文件,
如果要指向其他路徑下php文件,可以在php 路徑/hello.php ,這種形式稱為CLI模式,我們平時(shí)通過(guò)瀏覽器看到的那種成為CGI模式,至于傳遞參數(shù),php文件在cli模式下,直接通過(guò)在文件名稱后面接參數(shù),多個(gè)參數(shù)中間用空格隔開(kāi),在php文件里面是通過(guò)兩個(gè)變量來(lái)獲取參數(shù)的,一個(gè)是$argv,一個(gè)是$argc,前者是傳遞參數(shù)的數(shù)組,默認(rèn)第一個(gè)為php文件的名稱;后者為$argv的數(shù)組個(gè)數(shù)。
linux下,一般程序安裝都會(huì)安裝在/usr/bin/php下面,可以通過(guò)man php查看一下,如果有信息說(shuō)明可以使用,使用方法類似于window下。如果前面這步成立,那么你可以直接 php php文件 來(lái)運(yùn)行php文件,如果man php沒(méi)有信息,則說(shuō)明當(dāng)前php執(zhí)行文件沒(méi)有在環(huán)境路徑里面,可以修改環(huán)境路徑包含php路徑,也可以類似于window進(jìn)入php路徑,在執(zhí)行 php php文件。其他類似于window下。
5. PHP的垃圾收集機(jī)制是怎樣的
在PHP中,沒(méi)有任何變量指向這個(gè)對(duì)象時(shí),這個(gè)對(duì)象就成為垃圾。PHP會(huì)將其在內(nèi)存中銷毀;這是PHP 的GC垃圾處理機(jī)制,防止內(nèi)存溢出。
當(dāng)一個(gè) PHP線程結(jié)束時(shí),當(dāng)前占用的所有內(nèi)存空間都會(huì)被銷毀,當(dāng)前程序中所有對(duì)象同時(shí)被銷毀。GC進(jìn)程一般都跟著每起一個(gè)SESSION而開(kāi)始運(yùn)行的.gc目的是為了在session文件過(guò)期以后自動(dòng)銷毀刪除這些文件.
執(zhí)行這些函數(shù)也可以起到回收作用
__destruct /unset/mysql_close