0

0

用exec执行cmd命令返回为空

php中文网

php中文网

发布时间:2016-06-23 13:47:26

|

2454人浏览过

|

来源于php中文网

原创

我把swftools里的pdf2swf.exe这个文件放到了网站根目录 在php里利用exec函数执行命令
$cmd = "c:/php/www/pdf2swf c:/php/www/upload/1.pdf c:/php/www/upload/1.swf"
exec($cmd);
我直接把这个代码 粘贴到命令行里 执行是正确的 可用php这么调用 却不成功 exec的后两个参数加上后 第二个参数是array();第三个是1,不成功 然后经过修改 我直接在跟目录下放个php文件 在里面写的exec(pdf2swf 1.pdf 1.swf)这么执行能成功 求教这是什么原因?
注:以上代码我在我本地测试完全通过,放到服务器上就是以上错误,都是windows2003的 网上用的IIS 本地用的apache


回复讨论(解决方案)

先看手册

exec() 第二个参数是屏幕返回的信息,每行为一个单元,组成数组

先看手册

exec() 第二个参数是屏幕返回的信息,每行为一个单元,组成数组


嗯 是 这个数组是空的  屏幕上行没有任何信息  我把命令粘贴到命令行里直接执行是正确的

因为你手动打开命令行,是承接了系统环境的,所以能直接运行文件
但用php执行,并不能承接系统环境,所以你还是需要指明可执行文件(exe等)

这应该是用户权限问题
直接在跟目录下放个php文件 可以成功
但显然不是 web 方式运行的,因为你不可能将网站的根放在 C 盘的根上

建议:
将网站目录移动到 D 盘上,并授予匿名用户执行权
不把网站放在 C 盘可防止系统文件被意外破坏,同时在系统崩溃时,灾难恢复的的工作量要小得多

因为你手动打开命令行,是承接了系统环境的,所以能直接运行文件
但用php执行,并不能承接系统环境,所以你还是需要指明可执行文件(exe等)



我把pdf2swf后面加上了.exe 还是不能执行  我试了试ipconfig 这个命令没问题  可能应该还是路径问题 我明明都写了绝对路径的 请问大哥 我是不是路径什么地方有问题?

$mcd = "D:\JGY\JGY_WEB\JGY_PHP\install_package\app\pdf2swf.exe D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile\2012\1222\20121222110539946.pdf D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile\2012\1222\20121222110539946.swf"
exec($cmd,$out);

这是我的cmd命令 比较长 请赐教

这应该是用户权限问题
直接在跟目录下放个php文件 可以成功
但显然不是 web 方式运行的,因为你不可能将网站的根放在 C 盘的根上

建议:
将网站目录移动到 D 盘上,并授予匿名用户执行权
不把网站放在 C 盘可防止系统文件被意外破坏,同时在系统崩溃时,灾难恢复的的工作量要小得多


呃 版主大大 我是放在网站根目录了 不是C盘根目录 
D:\JGY\JGY_WEB\JGY_PHP\install_package 这个是我的网站根目录
我把pdf2swf.exe放在这个下面 然后在放个1.pdf  再建一个index.php 
里面的代码直接就是exec(pdf2swf 1.pdf 1.swf)
这样的能成功 

然后下面的代码:
$mcd = "D:\JGY\JGY_WEB\JGY_PHP\install_package\app\pdf2swf.exe D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile1222121222110539946.pdf D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile1222121222110539946.swf"
路径比较深  三个参数中间都有空格  但这个就不行了

MATLAB 函数帮助文档 中文WORD版
MATLAB 函数帮助文档 中文WORD版

函数是一组语句一起执行任务。在MATLAB中,函数定义在单独的文件。文件函数的文件名应该是相同的。 函数操作在自己的工作空间,它也被称为本地工作区,独立的工作区,在 MATLAB 命令提示符访问,这就是所谓的基础工作区的变量。函数可以接受多个输入参数和可能返回多个输出参数 。 MATLAB是MathWorks公司开发的一种编程语言。它最初是一个矩阵的编程语言,使线性代数编程很简单。它可以运行在交互式会话和作为批处理作业。有需要的朋友可以下载看看

下载

$mcd
$cmd
我看到两个不同的变量名

$mcd
$cmd
我看到两个不同的变量名


额  这个是我刚才手敲的  不好意思  我是在ie里echo出的cmd命令  
D:\JGY\JGY_WEB\JGY_PHP\install_package\app\pdf2swf.exe D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile\2012\1222\20121222110539946.pdf D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile\2012\1222\20121222110539946.swf
就是这么个路径

再试试单引号……也不想这个问题,尽管试试吧

$cmd = "c:/php/www/pdf2swf c:/php/www/upload/1.pdf c:/php/www/upload/1.swf"
exec($cmd);
这是你发帖中的代码
如果你提供的信息,怎么可能得到真实的结果呢?

$cmd = "c:/php/www/pdf2swf c:/php/www/upload/1.pdf c:/php/www/upload/1.swf"
exec($cmd);
这是你发帖中的代码
如果你提供的信息,怎么可能得到真实的结果呢?


抱歉 抱歉 因为我的地址是在程序里得到的  我把程序贴出来 不如这么直接写个url直接 我echo了一下$cms这个变量 就是这个路径 
D:\JGY\JGY_WEB\JGY_PHP\install_package\app\pdf2swf.exe D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile\2012\1222\20121222110539946.pdf D:\JGY\JGY_WEB\JGY_PHP\install_package\uploadfile\2012\1222\20121222110539946.swf
劳烦版主大人再给分析一下 是不是iis的问题?我在本地apache测试是正常的 iis上看了一下 所有的用户都有读写执行权限的 

首先要解决的是权限的问题
如果指令在命令行或批处理中可以正确执行的话,那么问题就在于“权限”
当然你是不会禁用 exec 函数的

我也遇到相同情况,不过我的命令可以执行成功,但是没有返回值。不知道问题出在哪,权限也全开了了

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

48

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

44

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

37

2026.02.28

Golang 并发编程模型与工程实践:从语言特性到系统性能
Golang 并发编程模型与工程实践:从语言特性到系统性能

本专题系统讲解 Golang 并发编程模型,从语言级特性出发,深入理解 goroutine、channel 与调度机制。结合工程实践,分析并发设计模式、性能瓶颈与资源控制策略,帮助将并发能力有效转化为稳定、可扩展的系统性能优势。

22

2026.02.27

Golang 高级特性与最佳实践:提升代码艺术
Golang 高级特性与最佳实践:提升代码艺术

本专题深入剖析 Golang 的高级特性与工程级最佳实践,涵盖并发模型、内存管理、接口设计与错误处理策略。通过真实场景与代码对比,引导从“可运行”走向“高质量”,帮助构建高性能、可扩展、易维护的优雅 Go 代码体系。

19

2026.02.27

Golang 测试与调试专题:确保代码可靠性
Golang 测试与调试专题:确保代码可靠性

本专题聚焦 Golang 的测试与调试体系,系统讲解单元测试、表驱动测试、基准测试与覆盖率分析方法,并深入剖析调试工具与常见问题定位思路。通过实践示例,引导建立可验证、可回归的工程习惯,从而持续提升代码可靠性与可维护性。

3

2026.02.27

漫蛙app官网链接入口
漫蛙app官网链接入口

漫蛙App官网提供多条稳定入口,包括 https://manwa.me、https

268

2026.02.27

deepseek在线提问
deepseek在线提问

本合集汇总了DeepSeek在线提问技巧与免登录使用入口,助你快速上手AI对话、写作、分析等功能。阅读专题下面的文章了解更多详细内容。

51

2026.02.27

AO3官网直接进入
AO3官网直接进入

AO3官网最新入口合集,汇总2026年可用官方及镜像链接,助你快速稳定访问Archive of Our Own平台。阅读专题下面的文章了解更多详细内容。

430

2026.02.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号