標籤:.bat 安全 space pop 中文路徑 email 數組 ini mil
Atitit.運行cmd 命令列 php
1. 運行cmd 命令列,調用系統命令的基礎 1
1.1. 實際運行模式 1
1.2. 空格的問題 1
1.3. 中文路徑的問題。程式檔案讀取編碼設定 1
1.4. 回顯亂碼 2
2. exec,system等函數調用系統命令 2
3. php.ini。關掉安全模式safe_mode = off 3
4. 參考 3
1. 運行cmd 命令列,調用系統命令的基礎1.1. 實際運行模式
Processmonitor 檢查。得到。。
PID: 115372, Command line: cmd.exe /c "D:\workspace 絀烘牸\AtiBrow\exp_receipt.bat"
1.2. 空格的問題
雙引號解決
1.3. 中文路徑的問題,程式檔案讀取編碼設定
Php.ini中的default_charset = "utf-8" 僅僅是設定post,get的編碼,不能設定php檔案的讀取編碼。。
最好是凝視掉此參數,讓他依據檔案本身的編碼自己主動推斷,否則輸出的php結果都 header(‘Content-Type:text/html;charset=utf8
作者:: 老哇的爪子 Attilax 艾龍, EMAIL:[email protected]
轉載請註明來源: http://blog.csdn.net/attilax
原因在於php檔案本身是用系統字元集來編碼的,中文的windows XP都是用GB2312。每個檔案頭部都有欄位指示該檔案是用何種方式編碼的
用javac編譯java源檔案時,編譯器預設用系統編碼讀源檔案中的內容。
假設源檔案不是用系統編碼來儲存的,能夠用命令javac -encoding指定詳細的編碼
淋巴,僅僅能不個php檔案的編碼設定成gbk。。
才ok。
。
1.4. 回顯亂碼
header(‘Content-Type:text/html;charset=gbk‘);
2. exec,system等函數調用系統命令
這二個都是用來調用系統shell命令,
不同點:
exec能夠把啟動並執行結果所有返回到$output函數裡(數組),$status是啟動並執行狀態 0為成功 1為失敗
systerm不須要提供$output函數,他是直接把結果返回出來。相同$return_var是啟動並執行狀態代碼 0為成功 1為失敗
exec示範範例:
1. 下面為引用的內容:
2. <?
php
3. $a = exec("dir",$out,$status);
4. print_r($a);
5. print_r($out);
6. print_r($status);
7. ?>
system示範範例:
1. 下面為引用的內容:
2. <?
php
3. $a = system("dir",$out);
4. print_r($a);
5. print_r($out);
6. ?>
3. php.ini,關掉安全模式safe_mode = off
首先,開啟php.ini。關掉安全模式safe_mode = off,然後在看看 禁用函數列表 disable_functions = proc_open, popen, exec, system, shell_exec ,把exec去掉。
4. 參考
php中使用exec,system等函數調用系統命令.htm
Apache以及PHP的預設編碼問題解決(具體解釋)_php追逐_新浪部落格.htm
Atitit.運行cmd 命令列 php