我被困在项目工作中。
我必须将python脚本中的.xml文件发送到.php脚本,而不使用任何API。
我可以使用哪些方法/模块来实现此目的?
接收文件后的PHP脚本应该要求用户下载并从浏览器下载。
请指导我一些想法。
感谢您提前提供任何帮助
答案 0 :(得分:0)
是的,你可以:) 阅读xml RPC:
https://en.wikipedia.org/wiki/XML-RPC
答案 1 :(得分:0)
如果Python和PHP配备在同一台服务器上,请考虑直接文件导出/导入,其中xml内容转换为字符串并从Python保存为文件,然后读入PHP:
Python
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>
反之亦然,使用子进程的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>