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?絀烘牸\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:1466519819@qq.com
轉載請注明來源:?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
?
轉載于:https://www.cnblogs.com/yangykaifa/p/7044500.html
總結
以上是生活随笔為你收集整理的Atitit.运行cmd 命令行 php的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP初入--表单元素
- 下一篇: [转]Eclipse插件开发之基础篇(2