1. 程式人生 > >Atitit.運行cmd 命令行 php

Atitit.運行cmd 命令行 php

header and pop 成功 tput system 自己 基礎 ace

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" 僅僅是設置postget的編碼,不能設置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