成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

剖析使用PHP shell腳本

開發(fā) 后端
PHP是我們現(xiàn)在常用的編寫WEB動(dòng)態(tài)頁面的腳本語言,文章這里詳細(xì)的介紹了PHP shell腳本的使用,希望對大家有幫助。

PHP經(jīng)過長時(shí)間的發(fā)展,很多用戶都很了解PHP了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。大多數(shù)情況下,我使用 exec() 命令和數(shù)據(jù)數(shù)組處理所有東西。或者對更簡單的命令使用 shell_exec(),尤其是不關(guān)心結(jié)果時(shí)。如果僅需返回一個(gè) PHP shell腳本,我就使用 passthru()。通常,我在不同的場合中使用不同的函數(shù),并且有時(shí)它們是可以互換的。

#T#這完全取決于我的心情和要實(shí)現(xiàn)的目的。您可能提問的另一個(gè)問題是 “它們的長處是什么?”。如果您沒有頭緒,或者一個(gè)項(xiàng)目非常適合使用 shell 命令,但不知道如何使用,那么我在這里提供一些見解。如果您正在編寫一個(gè)提供各種備份或文件傳輸功能的應(yīng)用程序,您可以選擇使用 shell_exec() 或這里提供的其他命令之一運(yùn)行 rsync 支持的 PHP shell腳本。您可以編寫 PHP shell腳本使其包含必要的 rsync 命令,然后使用 passthru() 根據(jù)用戶的命令或 cron 作業(yè)執(zhí)行它。

例如,一位用戶在您的應(yīng)用程序中有適當(dāng)?shù)臋?quán)限(比如管理員權(quán)限),他想將 50 個(gè) PDF 文件從一個(gè)服務(wù)器發(fā)送到另一個(gè)服務(wù)器。那么,該用戶需要在應(yīng)用程序中導(dǎo)航到正確的位置,單擊 Transfer,選擇需要發(fā)送的 PDF,然后單擊 Submit。在這個(gè)過程中,該表單應(yīng)該有一個(gè) PHP 腳本,它使用返回選項(xiàng)變量通過 passthru() 運(yùn)行 rsync 腳本,這樣您就知道是否發(fā)生問題,如下所示。

清單 1. 通過 passthru() 運(yùn)行 rsync 腳本的示例 PHP 腳本

  1. <?php 
  2. passthru('xfer_rsync.sh',$returnvalue);  
  3.  
  4. if ($returnvalue != 0){  
  5. //we have a problem!  
  6. //add error code here  
  7. }else{  
  8. //we are okay  
  9. //redirect to some other page  
  10. }  
  11. ?> 

如果您的應(yīng)用程序需要列出進(jìn)程或文件,或關(guān)于這些進(jìn)程或文件的數(shù)據(jù),您可以使用本文總結(jié)的命令之一輕松實(shí)現(xiàn)這個(gè)目的。例如,一個(gè)簡單的 grep 命令能夠幫助您找到匹配特定搜索條件的文件。將它與 exec() 命令一起使用可以將結(jié)果保存到一個(gè)數(shù)組中,這允許您構(gòu)建一個(gè) HTML 表或表單,它們又進(jìn)一步允許您運(yùn)行其他命令。

到目前為止,我討論了用戶生成的事件 —— 用戶只要按下按鈕或單擊鏈接,PHP 就運(yùn)行相應(yīng)的腳本。您還可以將獨(dú)立的 PHP 腳本和 cron 或其他日程安排程序一起使用,從而實(shí)現(xiàn)一些有趣的效果。例如,如果您一個(gè)備份腳本,您可以通過 cron 運(yùn)行它,或者將它打包到 PHP 腳本后在運(yùn)行。為什么要這樣做?這似乎是多余的,不是嗎?不是這樣的 —— 您需要這樣考慮,您可以通過 exec() 或 passthru() 運(yùn)行備份腳本,然后根據(jù)返回代碼執(zhí)行一些行為。如果出現(xiàn)錯(cuò)誤,您可以將其記錄到錯(cuò)誤日志或數(shù)據(jù)庫中,或發(fā)送一封警告電子郵件。如果腳本成功,您可以將原始的輸出轉(zhuǎn)儲(chǔ)到數(shù)據(jù)庫(例如,rsync 有一個(gè)詳盡(verbose)模式,對隨后診斷問題十分有用)。

安全

我們在這里簡要討論一下安全性:如果您接受用戶輸入并將信息傳遞到 shell,那么最好過濾用戶輸入。刪除您認(rèn)為有害的命令和不允許的內(nèi)容,比如 sudo(作為超級用戶運(yùn)行)或 rm(刪除)。事實(shí)上,您可能不希望用戶發(fā)送開放的請求,而是讓他們從列表中選擇。

例如,您運(yùn)行一個(gè)接受文件列表作為參數(shù)的傳輸程序,您應(yīng)該通過一系列復(fù)選框列出所有文件。用戶可以選擇和取消選擇文件,并通過單擊 Submit 激活 rsync shell 腳本。用戶不能自己輸入文件或使用正則表達(dá)式。

責(zé)任編輯:田樹 來源: it168
相關(guān)推薦

2011-07-12 17:11:13

PHPSHELL

2022-06-21 09:26:21

Shell腳本JavaScript

2014-08-08 16:17:49

shell腳本linux

2015-08-10 14:42:40

Explain SheShell 命令

2009-12-01 17:00:49

PHP變量

2011-12-05 13:52:00

PHP

2010-02-01 13:34:59

Python 腳本

2021-05-11 07:50:31

BashShell腳本

2024-02-19 16:15:07

2009-03-23 13:08:07

PHP擴(kuò)展PHPJavascript

2024-11-27 09:19:25

2009-11-16 11:41:19

PHP上傳大文件

2019-08-09 13:50:08

shellLinux

2010-02-23 10:32:20

Python 腳本

2009-11-18 13:46:11

PHP命令行

2010-02-24 14:04:32

Python腳本語言

2009-09-09 16:21:31

Linq使用sqlme

2021-03-14 09:28:24

Linux Shell腳本

2022-12-22 20:47:01

腳本循環(huán)結(jié)構(gòu)

2022-10-09 10:18:44

LinuxShell腳本
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久男人的天堂 | 麻豆国产一区二区三区四区 | 最新黄色在线观看 | 精品国产一级片 | 亚洲国产一区二区三区 | 在线欧美日韩 | 成人亚洲精品 | 欧美成人免费在线视频 | 黄色高清视频 | 91香蕉| 欧美性受xxx | 国产成人免费视频网站高清观看视频 | 久草.com| 麻豆久久久久久久 | 日本一区二区三区精品视频 | 精品一区二区三区在线视频 | 欧美日韩一区在线播放 | 人人叉| 99久久久久国产精品免费 | 九九九视频 | 国产一区在线免费 | 亚洲成人a v | 中文字幕日韩欧美 | 97国产精品视频人人做人人爱 | 日本粉嫩一区二区三区视频 | 日韩在线91| 日韩成人av在线 | 精品久久久久久久久久久久久 | 粉色午夜视频 | 日韩一区二区三区在线视频 | 九九热这里只有精品6 | 亚洲精品二区 | 国产美女在线看 | 日韩精品在线观看网站 | 亚洲日韩中文字幕一区 | 亚洲精品乱码久久久久久按摩 | 久久久国产一区二区三区 | 国产精品成人一区二区三区吃奶 | 中文在线一区二区 | 国产精品美女久久久久aⅴ国产馆 | 少妇av片|