今天,同事突然告訴我,我寫的一個(gè)做計(jì)劃任務(wù)的php腳本執(zhí)行總是不成功。
腳本本身很簡(jiǎn)單,里面只有包含了幾個(gè)庫(kù)文件并執(zhí)行了一個(gè)函數(shù),函數(shù)應(yīng)該沒有錯(cuò)誤,這個(gè)函數(shù)在別處也調(diào)用過,沒有問題。我在本地用瀏覽器訪問頁(yè)面,執(zhí)行成功,看來沒有問題,我有點(diǎn)懷疑是同事的計(jì)劃任務(wù)的問題。我又打開命令行,用php直接執(zhí)行腳本,這回報(bào)錯(cuò)了,是require 包含文件錯(cuò)誤,看來是路徑不對(duì)。
不明白是什么原因引起的,只是從報(bào)錯(cuò)來看是路徑不對(duì),我猜測(cè)是跟相對(duì)路徑有關(guān),于是把相對(duì)路徑的全部改成絕對(duì)路徑,再執(zhí)行,問題解決。
在百度上搜索之后,知道是用php執(zhí)行腳本時(shí),執(zhí)行腳本的位置是當(dāng)前執(zhí)行php命令的路徑,所以相對(duì)路徑就不對(duì)了。解決問題的辦法有兩個(gè):
一、改用絕對(duì)路徑,這個(gè)比較麻煩,所有包含的文件包括直接包含的文件里包含的文件路徑,有一個(gè)不對(duì)就有可能出錯(cuò),所以只有當(dāng)執(zhí)行文件比較簡(jiǎn)單的時(shí)候可用。
二、使用chdir函數(shù),改變當(dāng)前執(zhí)行目錄,把目錄改為文件所在目錄,chdir(dirname(__FILE__));
最后,簡(jiǎn)單介紹下PHP的cli命令行模式吧
首先,進(jìn)入PHP的CLI(Command line interface) mode
- cyguin-> $ ./php --ini(顯示配置文件信息)
新聞熱點(diǎn)
疑難解答