回答
如果您打算在命令行中執行PHP,我建議您安裝phpsh, a decent PHP shell。這很有趣。
無論如何,PHP的命令提供兩個開關的命令行執行代碼:
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
可以用PHP的-r切換這樣:
php -r 'echo function_exists("foo") ? "yes" : "no";'
上面上面的PHP命令應該是輸出no
和返回0
你可以看到:
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
另一個有趣的開關PHP -a:
-a Run as interactive shell
這是排序相比,phpsh跛,但如果你不想安裝the awesome interactive shell for php made by facebook to get tab completion, history, and so on,然後使用-a原樣:
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
如果它不工作,你的箱子像我的盒子* ES *(在Ubuntu和拱測試),然後可能是你的PHP設置是模糊或損壞。如果您運行此命令:
php -i | grep 'API'
您應該看到:
Server API => Command Line Interface
如果不這樣做,這意味着也許另一個命令將提供CLI SAPI。試試php-cli,也許它是你的操作系統中的一個包或一個命令。
如果你看到你的PHP命令使用CLI(命令行界面)SAPI(服務器API),然後運行php -h | grep code
到找出哪些瘋狂的開關 - 這已經不是年 -允許改變在您的版本/設置中運行代碼。
另外一對夫婦的例子,只是爲了確保它的作品在我的箱子:
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
另外請注意,有可能延長在CLI而不是在CGI或Apache SAPI加載。很可能有幾個PHP SAPI使用不同的php.ini文件,例如, /etc/php/cli/php.ini
vs /etc/php/cgi/php.ini
vs /etc/php/apache/php.ini
在Gentoo盒子上。找出哪個ini文件與php -i | grep ini
一起使用。
在命令行:
php -i | grep sourceguardian
如果它的存在,那麼你會得到一些文字。如果不是,你不會得到一件事。
要麼我是盲人,要麼這個答案與問題無關。這個答案應該回答問題:「如何直接從命令行運行PHP代碼,而不將PHP代碼保存到'.php'文件中?」? – trejder 2014-11-06 08:05:23
@trejder我想知道我是否回答了錯誤的問題,但後來我查看了編輯歷史和評論。這回答了OP似乎確實需要的:找出是否加載了特定的PHP擴展。這個問題已經被重新表述出來了,所以現在並不適合。 – 2014-11-06 12:45:18
- 1. 從windows命令行執行Perl代碼
- 2. 如何從PHP源代碼獲取可執行的phar命令?
- 3. PHP如何執行命令
- 4. 從python代碼執行Unix命令
- 5. 從Ruby代碼執行shell命令
- 6. 從java代碼執行CURL命令
- 7. 如何從命令行執行Visual Studio代碼分析?
- 8. 從php執行perl命令
- 9. 如何使用php代碼執行sudo命令?
- 10. PHP執行命令
- 11. 直接從命令行執行PHP
- 12. 執行導入/從PHP代碼加載db2命令
- 13. 從命令行運行R腳本不執行代碼
- 14. PHP +命令行執行
- 15. php javabridge執行命令行
- 16. 在命令行運行php代碼
- 17. 如何從php代碼執行win cmd?
- 18. 如何從命令行執行Scrooge?
- 19. 如何從java代碼執行ssh bash命令?
- 20. 從NSIS執行命令行命令
- 21. 從命令行執行Django Shell命令
- 22. 從Python執行命令行命令
- 23. 從Perl執行命令行命令?
- 24. 從PHP執行htmlunit代碼
- 25. 我的代碼不執行命令代碼,它只顯示命令提示符,但它不執行命令
- 26. Java從命令行運行的代碼
- 27. 在Ruby代碼執行curl命令
- 28. 的Java執行命令不代碼
- 29. 在代碼中執行CMD命令
- 30. 使用C代碼執行Bash命令
在不使用任何其他包含用戶定義函數的文件的情況下執行function_exists()不會很好,除了測試PHP版本,您可以通過其他方式找到它。你想測試什麼功能? – 2012-03-01 16:34:27
我正在尋找測試此功能:sg_load() – Steve 2012-03-01 16:43:28
聽起來像你真正想要的是找出是否啓用了sourceguardian php擴展? – 2012-03-01 16:50:09