【问题标题】:Running python script from php and write to a file从 php 运行 python 脚本并写入文件
【发布时间】:2016-03-31 19:00:40
【问题描述】:

我的 php 代码在 htdocs/series/index.php 中。 我的python代码位置是/home/shivam/Desktop/hello.py 我在 ubuntu 中使用 xampp 运行 php。 这是php代码

 <?php
$command = escapeshellcmd('/home/shivam/Desktop/hello.py');
$output = shell_exec($command);
echo $output;
?>

这是我的python代码

#!/usr/bin/env python
with open("/home/shivam/Desktop/solution.txt", "w") as myfile:
    myfile.write("write text")

我正在尝试使用 php 运行 python 脚本以写入文件“solution.txt”。当我自己写一些东西到 solution.txt 并使用 python 脚本通过 php 以读取模式打开它时,它可以工作,但是当我尝试使用上面的代码编写时,我无法这样做。 还有一件事,“with open("/home/shivam/Desktop/solution.txt", "w") as myfile:" 行下面的代码都没有被执行。 我已经尝试过:enter link description here

中给出的解决方案

【问题讨论】:

  • 您是否也按照链接中的建议更改了权限?
  • 我做了 chmod +x hello.py
  • 您的原始代码具有有效的 php 标签,对吧?它在此处显示` ?php, not
  • 我还需要给python和php文件什么权限。

标签: php python


【解决方案1】:

可执行文件和文件的绝对路径...

run_py.php

<?php
$command = escapeshellcmd('/usr/bin/python /home/user/some_py.py');
$output = shell_exec($command);
echo $output;
?>

some_py.py

with open("/home/user/solution.txt", "w") as myfile:
    myfile.write("write text")

输出:

user@box:~/$ php run_py.php 
user@box:~/$ cat solution.txt 
write text

【讨论】:

  • 我知道这段代码有效。但我必须在浏览器上运行它。
  • @shivam12393 “我知道这段代码可以运行。” 你真的尝试过运行它吗?启用 PHP 错误报告并检查您的 PHP/服务器用户(www-data?)是否不允许写入文件。可能不允许 PHP 打开 shell。
  • @shivam12393 如果您将调试输入和输出添加到问题中会有所帮助。例如。 “我尝试将 [code] 添加到脚本并得到以下输出:[browser/terminal output]”
猜你喜欢
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 2014-04-08
  • 2012-06-24
  • 2015-05-21
  • 1970-01-01
相关资源
最近更新 更多