我被困在我的项目工作中。
我必须在不使用任何 API 的情况下将.xml文件从我的 python 脚本发送到.php脚本。
我可以使用什么方法/模块来实现此目的?
收到文件后的PHP脚本应要求用户下载并从浏览器下载。
请指导我一些想法。
提前感谢您的任何帮助
是的,你可以:)阅读有关 XML RPC 的信息:
https://en.wikipedia.org/wiki/XML-RPC
https://docs.python.org/2/library/xmlrpclib.html
http://php.net/manual/en/book.xmlrpc.php
如果 Python
和 PHP 装备在同一台服务器上,请考虑一个简单的文件导出/导入,其中 xml 内容被转换为字符串并从 Python 保存为文件,然后读入 PHP:
蟒
import xml.etree.ElementTree as ET
xmlstr = ''''
<data>
<example>88</example>
</data>'''
dom = ET.fromstring(xmlstr)
tree_out = ET.tostring(dom, encoding='UTF-8', method='xml')
xmlfile = open('/path/to/Output.xml', 'wb')
xmlfile.write(tree_out)
xmlfile.close()
.PHP
// LOAD XML SOURCE
$doc = new DOMDocument();
$doc->load('/path/to/Output.xml');
// ECHO CONTENT
echo $doc->saveXML();
命令行
您甚至可以使用 exec()
从 PHP 通过命令行调用 Python 脚本:
exec('python /path/to/Python/Script.py');
// LOAD XML SOURCE
$doc = new DOMDocument();
$doc->load('/path/to/Output.xml');
// ECHO CONTENT
echo $doc->saveXML();
//<?xml version="1.0"?>
//<data>
// <example>88</example>
// </data>
反之亦然,从Python使用子进程的call
或Popen
import subprocess
#... same as above ...
# RUN CHILD PROCESS W/O OUTPUT
subprocess.call(['php', '/path/to/PHP/Script.php'])
# RUN CHILD PROCESS W/ OUTPUT
proc = subprocess.Popen(['php','/path/to/PHP/Script.php'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = proc.communicate()
print(stdout.decode("utf-8"))
#<?xml version="1.0"?>
#<data>
# <example>88</example>
# </data>