php - Python 将数据 POST 到 Linux 上的本地 PHP

标签 php python linux curl

这听起来可能有点奇怪,但我需要这样发生是有原因的。

我需要 python 能够将数据发布到 linux 服务器上的本地 PHP 文件,然后从 PHP 获得响应。

我试过这个:

p = subprocess.Popen("curl --data 'param1=value1&param2=value2' /home/hbmukwm/temp/receive.php", shell=True, stdout=subprocess.PIPE)
reply = p.stdout.read()

但是当我这样做时,因为它是一个本地文件,我得到了这个 curl 错误:curl: (3) malformed

我也这样试过(在一个stackoverflow的回答中找到)

mydata=[('one','1'),('two','2')]
mydata=urllib.urlencode(mydata)
path='file:/home/hbmukwm/temp/receive.php'
req=urllib2.Request(path, mydata)
req.add_header("Content-type", "application/x-www-form-urlencoded")
reply=urllib2.urlopen(req).read()

但在这种情况下,我得到的 php 响应是纯文本,就像我只是想读取 PHP 文件一样,我认为这是因为 PHP 文件是本地的,就像这样:

<?php echo "test"; ?>

不仅仅是

test

希望到目前为止这是有意义的。我需要做的就是将数据 POST 到本地 PHP 文件,然后将 PHP 响应返回给 python...这可能吗...

非常感谢任何回复,对我的无知深表歉意!

最佳答案

谢谢大家的回复,我至少学到了一些东西!我希望将其作为本地文件的原因是因为我不希望 PHP 文件可公开访问,尽管需要从应用程序运行的任何位置向它们发送数据。所以我的想法是创建一个在 linux 服务器上的端口上运行的小型 python 应用程序,该应用程序接受命令并将它们传递给服务器本地的 PHP 文件。

无论如何,我的工作方式是使用命令行(就像我的第一个例子)除了使用:

p = subprocess.Popen("php /path/to/file 'data=this'", shell=True, stdout=subprocess.PIPE)

然后在 PHP 文件中像这样获取参数

$data = $argv[1];

这并没有像我最初要求的那样将数据发布到 PHP 文件,但我想我误解了我需要做什么。所以感谢你们所有的帮助!我真的无法弄清楚您的哪个答案是最终答案,因为您所说的都是正确的,但我现在发布的答案是我如何克服这个问题。

再次感谢大家,Stack Overflow 是最棒的:)

关于php - Python 将数据 POST 到 Linux 上的本地 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380736/

相关文章:

python - 在循环的每次迭代中将函数作为 python 中的新进程运行

python - python中如何处理一些异常

python - pygtk 窗口大小调整中的意外行为

c++ - 未在此范围内声明

php - 如何从 php 运行 .sh 文件?

PHP while 使用 PHP Mailer 将内容循环到电子邮件中

javascript - 如何将 Yajra 数据表中的两列合并为一列

php - SNMP Php 无响应,在 linux shell 中工作

linux - fatal error : Module sg not found

php - 在 mysql 上使用 SQL_SAFE_UPDATES