在PHP中调用外部命令,可以用如下三种方法来实现: 1) 用PHP提供的专门函数 PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru()。 system() 原型:string system (string command [, int return_var]) system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。 原型:string exec (string command [, string array [, int return_var]]) 原型:void passthru (string command [, int return_var]) 2) 用popen()函数打开进程 上面的方法只能简单地执行命令,却不能与命令交互。但有些时候必须向命令输入一些东西,如在增加Linux的系统用户时,要调用su来把当前用户换到root才行,而su命令必须要在命令行上输入root的密码。这种情况下,用上面提到的方法显然是不行的。 popen()函数打开一个进程管道来执行给定的命令,返回一个文件句柄。既然返回的是一个文件句柄,那么就可以对它读和写了。在PHP3中,对这种句柄只能做单一的操作模式,要么写,要么读;从PHP4开始,可以同时读和写了。除非这个句柄是以一种模式(读或写)打开的,否则必须调用pclose()函数来关闭它。 例子1: <? 例子2(本例来自PHP中国联盟网站http://www.phpx.com/show.php?d=col&i=51): <? tar 原字義是指"深色的焦油",一般也稱為瀝青或柏油。tar 原作者 Chuck Haley 用這個字來代表程式的功能,也就是將檔案粘在一起的意思。 在 Linux 中, tar 指令通常採用的是 GNU 撰寫的版本。使用的語法並必不特別但卻有一個特色,她能以選項的方式直接呼叫壓縮解壓縮程式,如 gzip(-z) 以及 compress(-Z)。這點倒提供了較合理的使用。因為原始的 tar 指令並沒有提供壓縮的功能。 如果列出 tar 全部的功能選項,是很壯觀的。因為 tar 是一個思考慎密的程式。對於檔案的製作、比對、新增、特殊保留項目、檢查、展開等動作都有功能選項,同時還針對以上狀況的例外做了特定額外的選項,所以第一次看她 on-line manual 的人,通常都會嚇一跳。其實在單機一般狀況下用的選項只要幾個就足以應付了。 常用功能選項 -c 製作 tar 檔案;create a new archive -x 還原 tar 檔案;extract files from an archive -t 顯示 tar 檔案的內容;list the contact of an archive -v 顯示指令運作過程資訊;verbosely list files processed -f 包含指定目錄下的子目錄以及所有檔案; -z 呼叫 gzip 壓縮(製作檔案時)或解壓縮(還原檔案時)。 實例 # tar cvfz Ak2k202 dot tar.gz /home/html 以上是將 /home/html 目錄之下的所有資料壓縮轉存成 Ak2k202.tar.gz 檔案。 # tar xvfz game.tar.gz 將 game.tar.gz 檔案,解壓縮、解 tar 到在現在的目錄中。 # tar tvfz Ak2k201.tar.gz 顯示 Ak2k201.tar.gz 檔案的內容, 想调用外部命令 CRONTAB 创建定时备份,结果总是返回空白页~~~~ crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示设定自己的时程表。 如果PHP执行出现空白页面,一般有可能是PHP设置为安全模式,限制了某些函数或者程序的运行 字体:大 中 小 |
![]() | 永久地址 http://www.shengfang.org/blog/p/phpsystemexectar.php |
![]() | 引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1131342081 |
2005年11月7日13:41星期一 [Info资料]





