PHP中常见的几种运行代码的方式
生活随笔
收集整理的這篇文章主要介紹了
PHP中常见的几种运行代码的方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
常見的運行程序的方法有
- shell_exec
- ``(反引號)
- eval
- system
- exec
- passthru
下面分別介紹他們的用法:
| 名稱 | 解釋 | 返回值 | 注意 |
| shell_exec | 通過 shell 環(huán)境執(zhí)行命令,并且將完整的輸出以字符串的方式返回。與執(zhí)行操作符(也叫執(zhí)行運算符)相同 | 命令執(zhí)行的輸出。 如果執(zhí)行過程中發(fā)生錯誤或者進程不產(chǎn)生輸出,則返回?NULL。 | ? |
| ``(反引號) | PHP 將嘗試將反引號中的內容作為 shell 命令來執(zhí)行,并將其輸出信息返回(即,可以賦給一個變量而不是簡單地丟棄到標準輸出)。使用反引號運算符(`)的效果與函數(shù) shell_exec() 相同。 | ? | 反引號運算符在激活了安全模式或者關閉了 shell_exec() 時是無效的。 與其它某些語言不同,反引號不能在雙引號字符串中使用。 |
| eval | 把字符串作為PHP代碼執(zhí)行。 | eval() 返回 NULL,除非在執(zhí)行的代碼中 return 了一個值,函數(shù)返回傳遞給 return 的值。 PHP 7 開始,執(zhí)行的代碼里如果有一個 parse error,eval() 會拋出 ParseError 異常。在 PHP 7 之前, 如果在執(zhí)行的代碼中有 parse error,eval() 返回 FALSE,之后的代碼將正常執(zhí)行。無法使用 set_error_handler() 捕獲 eval() 中的解析錯誤。 | 函數(shù)eval()語言結構是 非常危險的, 因為它允許執(zhí)行任意 PHP 代碼。 它這樣用是很危險的。 如果您仔細的確認過,除了使用此結構以外 別無方法, 請多加注意,不要允許傳入任何由用戶 提供的、未經(jīng)完整驗證過的數(shù)據(jù) 。 |
| system | 執(zhí)行外部程序,并且顯示輸出。 | 成功則返回命令輸出的最后一行, 失敗則返回 FALSE。 | ? |
| exec | 執(zhí)行一個外部程序。 | 命令執(zhí)行結果的最后一行內容。 如果你需要獲取未經(jīng)處理的全部輸出數(shù)據(jù), 請使用 passthru() 函數(shù)。 | ? |
| passthru | 執(zhí)行外部程序并且顯示原始輸出。同 exec() 函數(shù)類似, passthru() 函數(shù) 也是用來執(zhí)行外部命令(command)的。 當所執(zhí)行的 Unix 命令輸出二進制數(shù)據(jù), 并且需要直接傳送到瀏覽器的時候, 需要用此函數(shù)來替代 exec() 或 system() 函數(shù)。 常用來執(zhí)行諸如 pbmplus 之類的可以直接輸出圖像流的命令。 通過設置 Content-type 為 image/gif, 然后調用 pbmplus 程序輸出 gif 文件, 就可以從 PHP 腳本中直接輸出圖像到瀏覽器。 | 沒有返回值 | ? |
?
其他程序執(zhí)行函數(shù)
- escapeshellarg?— 把字符串轉碼為可以在 shell 命令里使用的參數(shù)
- escapeshellcmd?— shell 元字符轉義
- exec?— 執(zhí)行一個外部程序
- passthru?— 執(zhí)行外部程序并且顯示原始輸出
- proc_close?— 關閉由 proc_open 打開的進程并且返回進程退出碼
- proc_get_status?— 獲取由 proc_open 函數(shù)打開的進程的信息
- proc_nice?— 修改當前進程的優(yōu)先級
- proc_open?— 執(zhí)行一個命令,并且打開用來輸入/輸出的文件指針。
- proc_terminate?— 殺除由 proc_open 打開的進程
- shell_exec?— 通過 shell 環(huán)境執(zhí)行命令,并且將完整的輸出以字符串的方式返回。
- system?— 執(zhí)行外部程序,并且顯示輸出
轉載于:https://www.cnblogs.com/miao-zp/p/9758957.html
總結
以上是生活随笔為你收集整理的PHP中常见的几种运行代码的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi开发的数据库程序在C:\PD
- 下一篇: win安装wordcloud报错解决方案