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

剖析使用PHP shell腳本

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

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

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

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

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

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

安全

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

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

責任編輯:田樹 來源: 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 腳本

2009-03-23 13:08:07

PHP擴展PHPJavascript

2021-05-11 07:50:31

BashShell腳本

2024-02-19 16:15:07

2019-08-09 13:50:08

shellLinux

2009-11-16 11:41:19

PHP上傳大文件

2009-11-18 13:46:11

PHP命令行

2024-11-27 09:19:25

2010-02-23 10:32:20

Python 腳本

2015-07-16 17:13:13

shell分頁讀取MySQL數(shù)據(jù)腳本

2019-11-07 23:48:12

shell腳本getopts

2011-09-27 13:52:41

2020-06-17 10:42:54

shellshell腳本Linux

2010-02-24 14:04:32

Python腳本語言
點贊
收藏

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

主站蜘蛛池模板: 国产精品91网站 | 国产精品九九九 | 夜久久 | 欧美在线综合 | 日韩精品一区二区三区视频播放 | 精品一二三区在线观看 | 欧美日本久久 | 在线黄色影院 | 手机日韩| 国产精品亚洲精品日韩已方 | 亚洲一区视频在线 | 免费人成在线观看网站 | av中文字幕在线 | 亚洲视频在线观看 | 日韩av三区 | 人人爽人人爽人人片av | 中文字幕一区二区三区四区 | 色在线看 | 黄色片在线观看网址 | 日韩中文字幕在线观看 | 久久精品国产一区二区电影 | 欧美综合色 | 天天爽夜夜爽精品视频婷婷 | 韩日av在线 | 久久视频免费观看 | 国产一级久久久久 | 久久久久一区二区三区 | 夜久久 | 国产一区二区在线播放 | 亚洲欧美在线免费观看 | 成人水多啪啪片 | 国产精品欧美一区二区三区不卡 | 久久99精品国产 | 日韩一二区| 亚洲精品一区二区三区四区高清 | www.久久影视 | 日韩av资源站 | 国产高清毛片 | 在线久草| 99久久精品国产毛片 | 中文字幕在线视频精品 |