您的位置:首页 > 编程语言 > PHP开发

Atitit.运行cmd 命令行 php

2017-06-18 16:02 183 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: