2016-04-24 56 views
0

我困在我的項目工作中。我是否可以將.py腳本的.xml文件發送到.php腳本而不使用API​​

我必須從我的python腳本發送.xml文件到.php腳本而不使用任何API。

我可以爲此使用什麼方法/模塊?

PHP腳本收到文件後應該要求用戶下載並從瀏覽器下載。

請引導我一些想法。

感謝所有幫助提前

+0

在Python反之亦然我認爲你必須創建一個小的蟒蛇服務器的XML文件。 https://docs.python.org/2/library/simplehttpserver.html – wrufesh

+0

爲什麼不把XML從Python保存到磁盤並讀入PHP? – Parfait

回答

0

如果Python和PHP配備在同一臺服務器上,考慮一個簡單的文件導出/隱藏t其中的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> 

並採用子的callPopen

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> 
相關問題