1. 程式人生 > >shell呼叫php指令碼,並傳遞引數

shell呼叫php指令碼,並傳遞引數

命令列執行帶引數的php指令碼,並取得引數

 發表於 2011-07-15

分類目錄: php

一,為什麼我們要在命令列下執行php指令碼呢?

個人理解,主要有二個原因:

1,利用crontab去跑php,可以給伺服器減壓,當然在這裡有一個條件,就是實時性要求不高。比如:sns中的好友動態,這個實時要求不高,但是資料量比較大,這個時候定時跑的話,會給web伺服器,資料庫伺服器分擔不小的壓力。

2,就是我們要定時去完成某一事情,比如:我要刪除一個月前,使用者留言,這個時候,寫的php指令碼在crontab去執行,一天跑一次就行了。而不是手動去執行php程式。

二,命令列下執行帶引數php,並取得引數

有一點很重要,就是命令列下執行php,是不走apache等這類東西的,沒有什麼http協議,所有get,post傳引數根本不起作用,並且還會報錯,如下:

[email protected]:~$ php test.php?aaa=bbb

Could not open input file: test.php?aaa=bbb

般情況下,不需要向定時跑的php指令碼傳引數,但有的時候,是要的。

1,test.php測試檔案,很簡單吧

檢視複製列印?
  1. <?php  
  2. print_r($argv);  
  3. echo"\n";  
  4. echo$argc;  
  5. echo"\n"
    ;  
  6. ?>  

2,命令列下呼叫

檢視複製列印?
  1. [email protected]:~$ php test.php aaa ccc  bbbb  
  2. Array  
  3. (  
  4.  [0] => test.php    //引數0,檔案本身
  5.  [1] => aaa         //引數1
  6.  [2] => ccc         //引數2
  7.  [3] => bbbb        //引數3
  8. )  
  9. 4      //$argc的值,引數的總數

這種傳參的方式,根shell指令碼真的很像,

[email protected]:~$ sh c1.sh aaa bbb

我向c1.sh傳了二個引數aaa bbb,shell會得到三個引數,$0為檔案本身,$1為引數1,$2為引數2。不同的是,php得到的是以陣列的形勢,而shell不是。


相關推薦

shell呼叫php指令碼傳遞引數

命令列執行帶引數的php指令碼,並取得引數  發表於 2011-07-15 分類目錄: php 一,為什麼我們要在命令列下執行php指令碼呢? 個人理解,主要有二個原因: 1,利用crontab去跑php,可以給伺服器減壓,當然在這裡有一個條件,就是實時性要求

java 直接呼叫python指令碼傳遞引數

最近陸續用python寫了很多檔案處理指令碼,雖然功能都比較簡單 ,但還是感覺到python對檔案處理的簡潔高效 ,越發覺得java的語法相當的繁瑣~ 接到個需求處理ftp資料介面 。所以想把python指令碼也用上。java程式碼定時掃描ftp資料倉庫 ,呼叫pyt

shell呼叫python指令碼並且向python指令碼傳遞引數

shell中: python test.py $para1 $para2 python中: import sys def main($canshu1, $canshu2)   ..... ma

layui使用button按鈕 點擊出現子彈層 彈層中載入表單傳遞引數給父彈出層

在父層中增加button按鈕和隱藏域接收子彈出層傳遞的值 <button id="btnMenuTree" type="button" class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">選擇</bu

js提交form表單傳遞引數

//增加的函式 begin function queryFun(){ var type = $("#artType").val(); var hasInputed = "1";//表示輸入了要搜尋 的資訊 if($("#query").val()=="選手姓名/編號"){

在C#中呼叫python指令碼使用python第三方arcpy模組

前言 1、C#中呼叫python指令碼,一是通過ironpython直接執行python指令碼,二是通過呼叫Process類啟動電腦上的python.exe,執行python指令碼。 前者在使用第三方arcpy模組式,會提示錯誤:No Module Named arcpy,

linux -- shell指令碼呼叫其他指令碼shell指令碼傳遞引數

Shell 指令碼也可以看做是一個一個的函式,將命令進行了封裝。 看看自己的例子: outTop.sh 是最頂層的。【負責呼叫其他的shell 指令碼】out1.sh 是第2層。【被outTop.sh呼叫】outInsert是第2層。【被outTop.sh呼叫】檔案 out

關於JAVA呼叫Python指令碼傳遞引數

JAVA 程式呼叫python指令碼目前存在兩種形式。第一種:運用JAVA本身的自帶功能;第二種:使用jython Jar包的自帶方法來呼叫python指令碼 呼叫準備: 首先你要在本地獲取LINUX環境安裝python環境,如果是JYTHON的話需要安裝JYTHON,兩

java 呼叫 linux shell 指令碼讀取返回值

String[] cmd = {"/bin/sh", "-c", "ps -elf | grep -v grep | grep EuropeStaticsEntrance | wc -l"}; while (true) { StringBuilder sb = ne

EL表示式呼叫後臺方法傳遞引數

嘗試獲取後臺物件中帶引數的get方法返回的屬性值時,發現 J2EE6 開始支援EL表示式帶引數的呼叫後臺方法。   語法格式為: ${物件名.方法名(引數)}; 注意此處的方法名是方法全名,EL表示式並不會幫我們自動按照屬性名進行首字母大寫並在開頭拼接get三個字元來尋

BIRT使用指令碼接收引數設定引數字元編碼

最近剛接觸到birt報表開發,整理了下使用指令碼拼接引數的問題。如果需要使用指令碼拼接引數,在報表設計中選中自己所建的資料集,然後點選指令碼,選擇beforeOpen新增指令碼。 var sqlWhere = " where 1=1 "; //拼裝where var sqlGroup = "

GridView實現超連結列和圖片列跳轉頁面傳遞引數

「注意!請勿私自轉載!」   最近在使用ASP.NET建設網站,需要解決如標題所示的問題,上網可以搜出很多答案。現在簡單總結一下我的解決辦法,方便各位取用,有任何疑問歡迎提出交流。 (注:使用V

Javascript 呼叫C# 程式碼傳遞引數的兩種方法

             Javascript呼叫C#程式碼的方法網上介紹了很多種方法,也很詳細,但沒有向C#傳遞引數的方法。今天剛好用到,搞了半天才搞出來(其實我很笨)。下面說一下具體實現的方法。 一、使用HiddenField 控制元件。      HiddenField

安卓-----開啟新的Activity傳遞若干個引數給它

第一種傳遞引數: 1、佈局檔案activity_main.xml檔案: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:/

MUI預載入頁面跳轉傳遞引數的問題Uncaught Error: webview[某個頁面的id] does not exist

最近剛剛入門mui,學習慕課上仿豆瓣app,但是在預載入和跳轉頁面中出現了以下問題。  Uncaught Error: webview[某個頁面的id] does not exist 具體程式碼如下: //預載入電影詳

android原生webview中呼叫JS方法傳遞引數給JS遇到的問題

在使用webview時,需要給JS傳遞一個引數,之前前端同事把JS方法內容和html內容分離了,所以在使用下面的方法的時候一直顯示方法未定義[INFO:CONSOLE(1)] "Uncaught ReferenceError: load is not defined", s

cygwin安裝教程以及使用notepad++編寫shell指令碼通過cygwin執行

cygwin是一個windows平臺上的unix模擬環境,主要是通過重新編譯,將posix系統上的軟體移植到windows上。相信很多朋友想安裝cygwin,但是不知道怎麼安裝,因為都是英語,對於跟英語不感冒的人來說是件痛苦的事,下面綠茶小編和大家分享cygwin安裝步驟。

free pascal(lazarus)版的android JNI進階篇:反向呼叫java的方法傳遞複雜引數

        這篇文章雖然短暫,但耗用了筆者一天的時間搜尋各種資料,除錯了無數次,在這裡跟大家分享是想大家碰到類似問題時少走彎路,請各位轉載註明出處,http://blog.csdn.net/rocklee 。         查閱了無數C、C++、pascal、java

利用Ajax呼叫controller方法傳遞引數

一、背景 由於近期工作需要將人臉識別功能與選課系統結合,但是對前端知識瞭解的很少,只能邊做邊學了,因此在這邊把遇到的一些坑說明一下,希望能幫助到像我一樣的初學者二、具體內容 這裡採用框架為MVC,如果想在頁面中不通過提交表單方式與控制器互動的話,可以用

在彈框中獲取foreach中遍歷的id值傳遞給地址欄(方法2)

ges 應該 我們 png 地址欄 each 獲取 賦值 有時 1.php有時候我們需要再彈框中獲取foreach中遍歷的數據(例如id),在彈框中點擊按鈕並傳遞給地址欄跳轉。那麽應該怎麽做呢。第二種方法。 2. 可以在彈框中給出一個input hidden 點擊按鈕彈窗時