這篇文章主要介紹“php命令行模式下報(bào)require加載路徑錯誤怎么解決”,在日常操作中,相信很多人在php命令行模式下報(bào)require加載路徑錯誤怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php命令行模式下報(bào)require加載路徑錯誤怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

今天,同事突然告訴我,我寫的一個做計(jì)劃任務(wù)的php腳本執(zhí)行總是不成功。
腳本本身很簡單,里面只有包含了幾個庫文件并執(zhí)行了一個函數(shù),函數(shù)應(yīng)該沒有錯誤,這個函數(shù)在別處也調(diào)用過,沒有問題。我在本地用瀏覽器訪問頁面,執(zhí)行成功,看來沒有問題,我有點(diǎn)懷疑是同事的計(jì)劃任務(wù)的問題。我又打開命令行,用php直接執(zhí)行腳本,這回報(bào)錯了,是require 包含文件錯誤,看來是路徑不對。
不明白是什么原因引起的,只是從報(bào)錯來看是路徑不對,我猜測是跟相對路徑有關(guān),于是把相對路徑的全部改成絕對路徑,再執(zhí)行,問題解決。
在百度上搜索之后,知道是用php執(zhí)行腳本時(shí),執(zhí)行腳本的位置是當(dāng)前執(zhí)行php命令的路徑,所以相對路徑就不對了。解決問題的辦法有兩個:
一、改用絕對路徑,這個比較麻煩,所有包含的文件包括直接包含的文件里包含的文件路徑,有一個不對就有可能出錯,所以只有當(dāng)執(zhí)行文件比較簡單的時(shí)候可用。
二、使用chdir函數(shù),改變當(dāng)前執(zhí)行目錄,把目錄改為文件所在目錄,chdir(dirname(__FILE__));
最后,簡單介紹下PHP的cli命令行模式吧
首先,進(jìn)入PHP的CLI(Command line interface) mode
cyguin-> $ ./php --ini(顯示配置文件信息)
將顯示:
configuration file(php.ini) path: c:/Windows Loaded configuration file: c:/wamp/bin/php/php5.3.0/php.ini scan for additional .ini files in: (none) additional .ini files parsed: (none)
$./php --help (會顯示PHP具體信息)
$./php --rf <name> (顯示<name>函數(shù)的信息)
$./php --fc <name> (顯示<name>類的信息)
$./php --re <name> (顯示<name>擴(kuò)展的信息)
$./php --ri <name> (顯示<name>擴(kuò)展的配置)
$./php -l <file>: 檢查語法
如:$./php -l c:/wamp/www/1.php
運(yùn)行結(jié)果: No Syntax errors detected in xxx
$./php -v:顯示版本信息和運(yùn)行模式cgi/cli
運(yùn)行結(jié)果:
PHP 5.3.0 (cli) (built: Jun 29 2009 21:25:23)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
$./php -f <file>:解析并執(zhí)行文件
如:$./php -f c:/wamp/www/1.php
$./php -h:顯示幫助文件
$./php -r <code> : 運(yùn)行PHP代碼,不需要使用<?php ?>標(biāo)簽
如:$./php -r 'print("hello!");' 或 $./php -r 'echo "hello!";'
運(yùn)行結(jié)果: hello!
$./php -a:進(jìn)入交互模式
在linux下會出現(xiàn):
php>
在windows下:
需要輸入:
<?php echo "hello world!"; ?>
然后ctl+c,以獲得輸出。
在PHP5.3.0中,不能直接這樣用,因?yàn)椴荒苤苯拥玫浇Y(jié)果。
<?php echo "hello world!"; ?>
先輸入ctl+z,然后再輸入ctl+c,就會得到結(jié)果。
$./php -c : 指定查找php.ini的位置,或者指定一個特定的ini文件。
$./php -n: 不使用php.ini
$./php -d foo [=bar]: 定義INI文件中foo entry的值是bar
$./php -m : 顯示所有的模塊,php modules和zend modules
$./php -e: Generate extended information for debugger/profiler
$./php -B <begin_code>: 處理標(biāo)準(zhǔn)輸入簽執(zhí)行的代碼。PHP5新加。
如:
$./php -B 'echo "hello world";'
輸出結(jié)果:hello world
$./php -R <code>: 為每一行執(zhí)行的php代碼。PHP5新加。
$./php -F <file>:
$./php -H <end_code> : 處理完輸入后執(zhí)行的代碼
$./php -s: 顯示HTML語法高亮的代碼
$./php -w: 得到去掉空格和注釋后的代碼
如:
$./php -w c:/www/1.php
$./php -z <file> : 加載Zend擴(kuò)展文件
$pwd :顯示當(dāng)前路徑
--enable-cli, --enable-cgi
到此,關(guān)于“php命令行模式下報(bào)require加載路徑錯誤怎么解決”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
新聞名稱:php命令行模式下報(bào)require加載路徑錯誤怎么解決-創(chuàng)新互聯(lián)
本文來源:http://chinadenli.net/article14/edode.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、服務(wù)器托管、標(biāo)簽優(yōu)化、網(wǎng)站收錄、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容