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