Atitit.運行cmd 命令行 php
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 絀烘牸
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