从命令行运行 .php 文件中的 shell 命令

2024-01-08

我想将一系列 shell 命令放入程序中并从命令行执行该程序。我决定使用 PHP 来实现此目的,因此目前我正在尝试运行最基本的 shell 命令。

另存为 build.php

<?php
shell_exec('cd ..');
echo "php executed\n";
?>

从命令行

php build.php

Output

php executed

Php 正确执行,但我仍然在同一目录中。如何让 shell_exec( ... ) 成功调用 shell 命令?


您需要更改cwd(当前工作目录)在 PHP 中...任何cd您通过执行的命令exec()和它的姐妹函数会影响ONLYexec() 调用调用的 shell,以及您在 shell 中执行的任何操作。

<?php
    $olddir = getcwd();
    chdir('/path/to/new/dir');  //change to new dir
    exec('somecommand');

将执行somecommand in /path/to/new/dir。如果你这样做

<?php
    exec('cd /path/to/new/dir');
    exec('somecommand');

somecommand将在您启动 PHP 脚本的任何目录中执行 -cd您在一行前执行的操作将不再存在,并且本质上是一个空操作。

请注意,如果您执行了以下操作:

<?php
    exec('cd /path/to/new/dir ; somecommand');

那么你的命令将在该目录中执行...但是,一旦该 shell 退出,目录更改将不再存在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从命令行运行 .php 文件中的 shell 命令 的相关文章

  • 在多维数组 PHP 的所有键中搜索

    我想在多维数组中的所有键中搜索特定字符串 我只需要弄清楚它是否存在 仅此而已 我想知道访问者的 IP 是否存在于任何数组中 有没有我可以用来执行此操作的 php 函数或方法 我尝试过的每个函数或方法总是返回 false 数组中 数组搜索 数
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • PHP 异常处理与 C#

    这是一个非常基本的问题 我希望如此 我所做的大部分异常处理都是使用 C 进行的 在 C 中 任何在 try catch 块中出错的代码都会由 catch 代码处理 例如 try int divByZero 45 0 catch Except
  • YUI压缩机或类似的PHP?

    我一直在我的测试服务器上使用 yuicompressor jar 来动态最小化已更改的 JavaScript 文件 现在我已经将网站部署到公共服务器上 我注意到服务器的策略禁止使用 exec 或其等效项 因此我不再执行 java 有没有一个
  • 用 PHP 截断文件末尾

    我有一个日志文件 我想在 PHP 读取该文件后将其截断 我的代码目前如下所示 fp fopen file r ftruncate fp 125000 fclose fp 但是 这会通过保留first1MB 不过 我想保留last1Mb 的文
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 如何使用 sed 将空格替换为 \(space)?

    当我使用 sed 将所有空格替换为 X 时 该命令有效 命令为 sed s X g filelist tmp 但是 当我尝试用 space 替换所有出现的空格时 代码是 sed s g filelist tmp 这不起作用 我究竟做错了什么
  • 将 PHP 中的 openssl AES 转换为 Python AES

    我有一个 php 文件 如下所示 encryption encoded key c7e1wJFz PBwQix80D1MbIwwOmOceZOzFGoidzDkF5g function my encrypt data key encrypt
  • 禁用外部点击时关闭模式

    我正在制作一些使用模式的博客物质化 但我的模态 onclick 外部和错误数据有问题 这是我的代码 main js function changepassword var user userlog val var content conte
  • 转义用户数据,无需魔法引号

    我正在研究如何在来自外部世界的数据被用于应用程序控制 存储 逻辑等之前正确地对其进行转义 显然 随着 magic quote 指令在 php 5 3 0 中很快被弃用 并在 php6 中被删除 对于任何想要升级并进入新语言功能 同时维护遗留
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • 在php中获取大于2GB的文件大小的最佳方法?

    我想检查本地驱动器上的文件大小windows OS 但是PHP原生函数filesize 仅当文件大小小于时才有效2GB 大于的文件2GB将返回错误的数字 那么 是否有其他方法来获取大于的文件大小2GB 非常感谢 您始终可以使用系统的文件大小
  • Symfony 生成器形式、原则和 M:N 关系

    我有一个基本的 M N 设置 包含三个表 candidate position 和 Candidate position 这是 MySQL Workbench 的 ERD 屏幕截图 现在 我们继续讨论表单 在 symfony 生成器的默认世
  • PHP 电子邮件验证[重复]

    这个问题在这里已经有答案了 For PHP最好的电子邮件验证方法是什么preg NOT ereg因为它是已弃用 删除 I don t需要检查该网站是否存在 这不像最高安全性 我找到了很多方法ereg但它们 显然 不是好的做法 我建议你使用F
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 优雅地退出 Laravel 作用域

    我有一个范围 它根据用户角色以限制方式起作用 您可以将一组规则转发到限制数据库最终输出的范围 一个非常简化的角色限制示例 first name foo 只会返回其记录first name开始于foo 这实际上意味着我已禁止具有该角色的用户查
  • ASP.NET MVC 3 中嵌入的 PHP 站点的 IgnoreRoute

    我有一个带有嵌入式 WordPress 博客的 MVC 3 网站 以下所有 url 均通过 MVC 定向 www mysite com www mysite com aboutus www mysite com contactus 我还有一
  • 将客户分配到 magento 的多个客户组

    您好 我想将多个组分配给特定客户 例如 Rajat 客户 属于 批发 零售商 电力 实际上我在上面看到了同样的话题每个客户有多个客户组 https stackoverflow com questions 6153011 multiple c
  • sqlite3和pdo_sqlite有什么区别

    我正在将我的 Web 应用程序从 MySQL 迁移到 SQLite 数据库 我发现有两个 PHP 扩展用于与 sqlite 通信 php sqlite3 dll and php pdo sqlite dll 什么扩展比较好 或者另一个问题

随机推荐

  • Windows 批处理文件中一行中的多个命令

    在 Unix 中 我们可以将多个命令放在一行中 如下所示 date ls l date 我在Windows中尝试过类似的事情 gt echo TIME dir echo TIME 但它打印了时间并且不执行命令dir 我怎样才能实现这个目标
  • 在mapview中绘制透明的圆

    我的地图视图和叠加有问题 每次改变 GPS 位置时 我都必须在地图上画一个圆圈 我在覆盖类中使用了扩展覆盖的方法绘制 问题是我必须以透明度绘制这些圆圈 但是当圆圈在交点处相互重叠时 颜色会有所不同 因为存在 alpha 之和 我该如何修复它
  • 多线程Hello World

    使用两个线程 您应该打印 Hello World Hello World Hello World Hello World Hello World Hello World 在两个线程中 一个应该打印 Hello 另一个线程应该打印 World
  • 将本地时间转换为 UTC 时,如何使 Time::Piece 尊重 DST?

    我想将时间戳从当地时间转换为 GMT 我有遗留代码 手动 执行此操作Time Local timelocal and gmtime 它有效 但我不喜欢它并想使用Time Piece反而 我用了这个答案 https stackoverflow
  • pyinstaller 没有名为 pyinstaller 的模块

    我的 mac osx sierra 下安装了 2 个 python 版本 蟒蛇3 5 蟒蛇2 7 我使用以下命令在 python3 5 下安装了 pyinstaller python3 5 m pip install pyinstaller
  • 设置 CSS 列中第一项的样式

    我有一个显示在多列上的列表 每个列表项都是块元素 display block 并附加了一些样式 底部有 1px 边框 目前看起来是这样的 List item List item List item List item List item L
  • 如何以编程方式确定蓝牙主/从角色?

    因此 在蓝牙微微网中 有一个主设备和最多七个从设备 主设备设置从设备同步的时钟和跳频 但有没有办法确定哪个设备是主设备 哪个设备是从设备呢 我主要对便携式设备 Android iPhone 感兴趣 但乞丐不能是选择者 如果有人有这个领域的信
  • 将 cmd 错误捕获到当前目录中的文件中?

    我有一个 PowerShell 脚本 可以重新启动文件中列出的服务器 foreach server in servers try cmd c shutdown exe r f m server t 0 d p 0 0 c PlannedRe
  • 模糊屏幕截图中的矩形

    我正在开发一个使用背景的 Android 应用程序Service以编程方式捕获当前屏幕上的任何内容的屏幕截图 我获得的屏幕截图是Bitmap 接下来我成功导入了OpenCV https docs opencv org 2 4 doc tut
  • 如何为 Laravel Fortify + Inertia + vue 添加角色和权限?

    我的项目使用 laravel fortify 惯性与 vue 我必须添加基于角色的权限 就像 spatie 权限包一样 我对于强化和惯性还是一个初学者 但我有 spatie 包的经验 我对如何添加角色和权限进行强化感到困惑 目前我计划创建像
  • 在 WordPress(或 .htaccess)中创建 URL 别名

    我有一个在 Wordpress 上运行的网站 我想创建一个自定义短网址 如果页面 URL 是 www mysite com category post 我希望用户能够访问 www mysite com alias 如果有一种 Wordpre
  • 函数什么时候太长? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在主可执行文件的子文件夹中部署 Qt C++ 共享库的 dll?

    我有一个由我创建的 Qt5 C 项目 其中包含一个主应用程序和一个共享库 它编译并执行 我能够部署它 问题是 通过部署 我需要将共享库的已编译 dll 放在与主可执行文件相同的目录中 但是 我更喜欢保持顶层文件夹相对干净 并将必要的文件放在
  • 模块“AppModule”声明了意外值“AnyComponent”

    我正在使用 Angular2 当尝试在同一个 Typescript 文件中使用两个类时 我遇到了这个问题 在编译时不会给我任何错误 但是当我尝试执行该页面时 console log 会给出以下错误 Error BaseException h
  • PostgreSQL:块中的页眉无效

    我收到错误 ERROR invalid page header in block 411 of relation t value time 在我的 PostgreSQL 数据库中 这种情况在不同的机器上不断发生 有没有办法防止这种情况发生
  • 由于 ORDER BY 子句导致 SQL 查询性能不佳

    我有一个查询连接 4 个表 其中 WHERE 子句中有很多条件 该查询还包括数字列上的 ORDER BY 子句 返回需要 6 秒 这太长了 我需要加快速度 令人惊讶的是 我发现如果删除 ORDER BY 子句 则需要 2 秒 为什么 ord
  • CakePHP 2 找不到插件

    在 CakePHP 2 中我使用 一川 https github com ichikaway cakephp mongodb tree cake2 0的 MongoDB 插件是这样的 public default array datasou
  • 编译 imagemagick Convert util 的静态版本

    寻找为创建静态二进制文件图像魔法 http www imagemagick org 两个平台上的转换实用程序 ubuntu 和 os x 我能找到的唯一讨论如何做到这一点的讨论是 并且已经过时了 我尝试从下载 tar 文件http www
  • SQL Server 中的数据沿袭

    客观的 让我们想象一下一个大型企业 其中我们拥有异构数据存储 例如 SQL 服务器 No SQL 存储 ADL ADF 等大数据存储 分布在不同的业务组中 我们的目标是在企业级别构建沿袭服务 这将提供有关企业内不同数据存储实例之间的数据沿袭
  • 从命令行运行 .php 文件中的 shell 命令

    我想将一系列 shell 命令放入程序中并从命令行执行该程序 我决定使用 PHP 来实现此目的 因此目前我正在尝试运行最基本的 shell 命令 另存为 build php 从命令行 php build php Output php exe