1. 程式人生 > >php中判斷shell_exec執行結果

php中判斷shell_exec執行結果

   在做第三方登入的時候,註冊時頭像下載比較耗時,所以改為了非同步 shell_exec 執行wget 

   不過shell_exec執行成功無輸出  和  執行失敗 返回的都是null 在記錄錯誤日誌的時候區分就成問題了。

   在php手冊的評論中找到了區分的方法,在此記錄一下。

$shell = "wget -O despath sourcepath &&  echo 'success' ";
$shellExec = shell_exec($shell);
var_dump($shellExec);

  這樣 當前面的執行成功的時候 會執行echo 執行結果就是success 而不是空了 

  執行失敗不再繼續執行echo  執行結果仍舊是null 

  這樣就區分除了執行結果,記錄對應日誌就OK了。

  補充一下,大概是這樣的。。。

 $shellExec = shell_exec("cd ../");
 var_dump($shellExec);//NULL
  
 $shellExec = shell_exec("cd ../ && echo 'suc'");
 var_dump($shellExec);//string(4) "suc "

相關推薦

php判斷shell_exec執行結果

   在做第三方登入的時候,註冊時頭像下載比較耗時,所以改為了非同步 shell_exec 執行wget     不過shell_exec執行成功無輸出  和  執行失敗 返回的都是null 在記錄錯誤日誌的時候區分就成問題了。    在php手冊的評論中找到了區分的方法

php判斷字符串是否全是中文或含有中文的實現代碼

ade 判斷字符串 實現 ext charset 中文 head header type header(‘Content-type:text/html; charset=utf-8‘); $str = ‘你好‘; if(preg_match(‘/^[\x{4e00}-\x

phpmysqli 處理查詢結果集的幾個方法

數值 集中 style 索引 php bsp 枚舉 tab object 最近對php查詢mysql處理結果集的幾個方法不太明白的地方查閱了資料,在此整理記下 Php使用mysqli_result類處理結果集有以下幾種方法 fetch_all() 抓取所有的結果行並且

javascript奇怪的執行結果(立即執行函式)

在下面的例子中,將IIFE賦值給一個變數message。message返回另外一個函式,該函式只是簡單地輸出變數x的值。有趣的事情是,當我們把變數x的初始值作為引數傳入函式時,可以在函式執行時所建立的閉包中捕獲變數x的值。無論在外部作用域中x的值發生了什麼變化,閉包將記住函式執行時變數x的值

js[]==[],為什麼執行結果是false

有個陣列是空值  arry=[].然後我寫了一個判斷句。if(arry==[]){alert("00000")}   本來以為結果是true彈出00000,結果沒有走。所以 []==[]是false的。   原因: 在進行陣列直接與t

PHP判斷客戶執行的環境(pc與手機)

class self_test { const PC = 'pc'; const SP = 'sp'; private $_splist = array('iPhone','Android','iPod','iPad','Tizen');//設定經常使用的sp終端

phpmysqli 處理查詢結果集總結

在PHP開發中,我們經常會與資料庫打交道。我們都知道,一般的資料處理操作流程為 接收表單資料 資料入庫 //連線資料庫 $link = mysqli_connect("my_host", "my_user", "my_password", "my_db"

PHP判斷某個變數的型別

PHP的資料型別包括:integer float string boolean array object (用gettype()函式獲取資料的型別) is_numeric ( mixed var ): //檢驗測定變數是不是為數碼或數碼字串 is_b

android判斷當前執行activity名的方法

本文例項講述了android獲取當前執行Activity名字的方法,可以避免即時聊天再出現通知的情況。分享給大家供大家參考。具體方法如下: 最近在做聊天時需要知道當前Activity是哪一個Activity.整理了兩種方法: 第一種:要方便一點(Service中無法使

PHP判斷一個數組是否為空?

GOOGLE之後整理出以下辦法: 一、for迴圈   最簡單也是最直接的方法,用for迴圈來遍歷陣列。對於已知維數的陣列可以判斷,但如果是未知的多維陣列,該怎麼辦? 二、implode();   用implode()將陣列輸出為字串,判斷輸出的字串是否為空。初看上去似乎是個

PHP判斷變數為空的幾種方法小結

1. isset功能:判斷變數是否被初始化 說明:它並不會判斷變數是否為空,並且可以用來判斷陣列中元素是否被定義過 注意:當使用isset來判斷陣列元素是否被初始化過時,它的效率比array_key_exists高4倍左右 複製程式碼程式碼如下: $a = '';

Android判斷當前執行緒是否是主執行

通過Thread.currentThread()得到當前執行緒,通過Looper.getMainLooper().getThread()得到主執行緒,進行比較即可。 public boolean isMainThread() { return Thre

PHP判斷變數為空的五種方法

判斷變數為空,在許多場合都會用到,但也有很多新手仍會弄錯。這裡筆者整理了5個判斷變數為空的方法,大家可以根據實際情況選擇使用。 1.isset功能:判斷變數是否被初始化 說明:它並不會判斷變數是否為空,並且可以用來判斷陣列中元素是否被定義過 注意:當

PHP判斷陣列是否為關聯陣列

網上的一段程式碼,經過精簡後的版本 function _isAssocArray(array $var) { return array_diff_assoc(array_keys($var), range(0, sizeof($var))) ? TRUE : FAL

EF執行SQL語句 結果和直接在Sqlserver執行結果不一致

enume 出了 text con query context png syn raw 先說問題 直接執行sql的結果 var result = base.Context.Customers.SqlQuery(sql);   sql 語句是打斷點取得的,連接的也

php preg_replace執行一個正則表達式的搜索和替換

cnblogs param subject bject placement family sub ica ans preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $lim

C#調用SQL存儲過程並用DataGridView顯示執行結果

exec char 登錄名 dataset type data comm and def //連接數據庫 SqlConnection con = new SqlConnection("server=服務器名稱;database=數據庫名稱;user id=登錄名;pwd=登

IE9的console不兼容問題 (在控制臺打開代碼要顯示的結果,數據到了conso這裏無法繼續執行

() 代碼 發現 習慣 csdn out 停止 size rom 轉自 http://blog.csdn.net/ywl570717586/article/details/53084655 今天發現並不是所有瀏覽器都像Google chrome一樣,可以正常使用cons

SqlServer儲存過程中將Exec的執行結果賦值給變數輸出

背景: 遇到這樣一種情況:動態向儲存過程中傳入表名和表的某些屬性(這裡用到的是主鍵ID),然後利用這兩個變數查出一條資料的某些欄位值,然後再利用這些值進行邏輯運算(自己的邏輯),最後將結果輸出。話不多說,直接上圖,看是否是你想要的結果: 說明:【區域1為要用來測試的表】【 區域2 為表中資料】【區域3

php關於執行緒thread的使用

【原文:http://www.01happy.com/php-thread-introduction/】 php通過擴充套件pthreads也可以支援執行緒上的操作,在mac下可以通過brew安裝pthreads擴充套件。 安裝pthreads擴充套件 搜尋pthre