使用 shell_exec 从 PHP 中调用 Python

2023-12-09

我的默认 Web 应用程序基于 PHP。不过,为了简单起见,我构建了一个 python 脚本来进行一些分析。现在我需要 php 来调用 python 代码并检索 python 代码提供的输出。这两个文件位于同一服务器中,但不在同一文件夹中。我目前的方法不起作用,如下所示:

$cmd = "/usr/bin/python /var/www/include/sCrape.py -u '$my_url' ";
$response = shell_exec($cmd);
$response = json_decode($response, true);

现在,当我尝试打印 $response 时,我得到 NULL 对象(它应该返回一个数组字符串,我应该通过 json_decode 对其进行解码)。我在功能上做错了什么吗? php 位于 /var/www/html/ 中。当两个文件位于同一目录中时,以下代码有效:

$cmd = "python sCrape.py -u '$my_url'";
$response = shell_exec($cmd);
$response = json_decode($response, true);

更多信息:my_url 作为来自 php 的已清理 $_POST 变量输入,但我现在尝试完全禁用清理以测试它是否有效,但它仍然不起作用(仍然,url 到达函数之前的路径更长,因为它必须通过表单发布传递,而在我的同一文件夹测试用例中,我只是声明了 $my_url)。 -u 后缀表示脚本输入一个 url。

预先非常感谢您!


你尝试过跑步吗/usr/bin/python /var/www/include/sCrape.py -u '$my_url' 在一个壳里?错误可能就在那里。

Try:

$cmd = "/usr/bin/python /var/www/include/sCrape.py -u '$my_url' 2>&1";
$response = shell_exec($cmd);
echo $response;

这应该输出一条错误消息。

Why?

shell_exec仅从标准输出 (stdout) 返回输出,如果发生错误,则会将其写入“到”标准错误 (stderr)。2>&1将 stderr 重定向到 stdout。看.

运行Python代码

您可能想要添加#!/usr/bin/env python在 python 脚本的第一行并使其可执行chmod +x /var/www/include/sCrape.py。之后您应该能够运行脚本而无需显式调用 python。/var/www/include/sCrape.py -u '$my_url'

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

使用 shell_exec 从 PHP 中调用 Python 的相关文章

随机推荐

  • python setup.py install 忽略 install_requires

    我无法使用安装本地软件包setup py 这是项目结构 my project lib local1 local1 1 0 whl index html local2 local2 1 0 whl index html setup py se
  • 如何使 HTML 有序列表的文本居中而不是数字标签居中

    我正在为页面创建一个小部件 以相反的顺序列出步骤 我计划用一个ol并设置value个人的属性li标签强制编号ol被逆转 到目前为止 一切都很好 然而 我有一个设计难题 我不确定可以用 css 解决 有了这个标记 是否可以将文本居中但保持标签
  • core-plot iOS 反转 Y 轴

    我想使用 core plot 来显示水深图 实时更新 但我不知道如何反转 Y 轴 以便 X 轴 代表时域 位于顶部我的 UIView 和 Y 轴以正值向底部增长 EDIT 如果我能像这样画轴那就更好了 X轴是时间 Y 轴从 0 到 X X
  • 如何在 Javascript 中获取 pdf 中选定的文本?

    我正在编写一个 Chrome 扩展来操作 pdf 文件 所以我想获取 pdf 中选定的文本 我怎样才能做到这一点 像这样的东西 您可以使用内部未记录的命令内置 PDF 查看器 以下是内容脚本的示例 function getPdfSelect
  • 如何判断两个向量之间的角度是外角还是内角?

    我知道如何找出两个向量之间的角度 但它总是给我内角 但我希望它总是给我逆时针方向的角度 即使它大于 180 度 我正在使用 C 但这并不重要 因为我需要了解理论 This is what I am using now 您正在寻找atan2
  • 使用 Powershell 自动执行 IE 确认提示

    我有一个很好的 powershell 脚本 可以为我女儿自动创建一个特定的网站 最近他们更改了网站并添加了一个不错的新功能 可以将我的脚本速度提高 10 倍 问题是他们用来激活此功能的输入类型会弹出一个确认对话框 HTML 看起来像这样
  • Swagger:<字符串,对象> 的映射

    我需要使用 Swagger 记录一个 API 该 API 使用对象映射作为输入和输出 并通过字符串键进行索引 Example a property foo property 1 a string 1 property 2 a string
  • 如何探索和修改从 tf.keras.preprocessing.image_dataset_from_directory() 创建的数据集?

    这是我使用该函数的方式 dataset tf keras preprocessing image dataset from directory main directory labels inferred image size 299 29
  • 范围从开始>结束

    for x in line x1 line x2 这不适用于以下情况x1 gt x2 所以我使用这个解决方法 for x in cmp min line x1 line x2 cmp max line x1 line x2 这很好 直到我需
  • 审核日志删除的最佳方法是什么?

    连接字符串上的用户 ID 不是变量 并且与程序的用户 ID 例如可以是 GUID 不同 如果连接字符串的用户 ID 是静态的 如何审核日志删除 记录插入 更新 删除的最佳位置是通过触发器 但是使用静态连接字符串 很难记录谁删除了某些内容 还
  • 函数应以字节切片形式返回 sha256/sha384/sha512 结果

    我正在编写一个函数 它将输入数据作为字符串以及要调用的 SHA 算法的位大小 它应该将生成的哈希值作为字节切片返回 第一次尝试 package main import crypto sha256 crypto sha512 errors f
  • Outlook VBA 将电子邮件从子文件夹导入 Excel

    我正在尝试将收件箱中每封电子邮件的详细信息 发件人 接收时间 主题等 导入到 Excel 文件中 我的代码适用于收件箱中的特定文件夹 但我的收件箱有几个子文件夹 并且这些子文件夹也有子文件夹 经过多次尝试和错误 我成功导入了收件箱下所有子文
  • 使用 JNA User32 平台图的 NoSuchMethodError

    我在第一次尝试使用 User32 Instance 时收到以下错误 线程 main 中的异常 java lang NoSuchMethodError com sun jna Native load Ljava lang String Lja
  • 循环遍历表单上所有未绑定的控件并清除数据

    我想循环遍历表单上的所有 UNBOUND 控件并清除它们的数据或重置它们的值 我有文本框 组合框和复选框 每次我尝试这样的事情 Dim ctl As Control For Each ctl In Me Controls If IsNull
  • FPDF - 在多单元中写入HTML?

    WriteHTML可以放在Multicell中吗 如何 我检索并显示了数据库中的 HTML 输出 但想将其放置在第二列中 比方说 因此我将其放入 Multicell 中 但没有效果 下面不起作用 pdf gt Multicell 70 3
  • 这个带有逗号的 CSS 选择器到底匹配什么?

    我有一个关于 CSS 选择器的问题 在我的 CSS 文件中 我有以下代码 table legenda th td text align left vertical align top font weight bold color 76818
  • 在 Windows Phone 中打开 PDF 文件

    我正在开发一个适用于 Windows Phone 7 的应用程序 并为其使用 Phonegap 模板 一切看起来都很完美 但现在我无法在浏览器中打开 PDF 文件 我尝试了以下方法 但不起作用 因为 PDF 的 url 超出了 2048 个
  • 在 postgresql 中将日期转换为整数

    我正在尝试将日期 日期类型 转换为 int 这个 int 应该类似于自 1900 年 1 月 1 日以来的天数 如何在 postgresql 中获取它 在 Excel 中 当我将日期与字符串连接时 我会自动获取此信息 示例 2011 11
  • RequireJS:回调函数中的依赖项和参数的数量不同

    我有遗留代码和这样的模块定义 define a b c d function a b c 您可以看到 依赖项比我们在模块中使用的实际参数多 这有什么意义吗 我认为模块 d 是多余的 这仅意味着模块 d 或者更准确地说 调用 d 工厂函数的结
  • 使用 shell_exec 从 PHP 中调用 Python

    我的默认 Web 应用程序基于 PHP 不过 为了简单起见 我构建了一个 python 脚本来进行一些分析 现在我需要 php 来调用 python 代码并检索 python 代码提供的输出 这两个文件位于同一服务器中 但不在同一文件夹中