關(guān)于PHP調(diào)用Python數(shù)據(jù)傳輸問題
這是以前大學(xué)時做項目出現(xiàn)的問題,現(xiàn)在把它挪上來,希望給遇到問題的未來大佬給出一些小的思路,請大佬們不要大意的幫我改正,如果出現(xiàn)問題或者有更好的解決方法,希望大家可以給出,謝謝!
以前小組開展項目實訓(xùn),我們小組選擇的是大數(shù)據(jù)分析,其中有一個用python進(jìn)行文本分析之后對用戶輸入的數(shù)據(jù)進(jìn)行分析,然后輸出對應(yīng)的崗位及其他。要求是前端將文本要求傳到后臺php,php調(diào)用python程序處理,再將數(shù)據(jù)傳給php,然后再傳到前端,進(jìn)行下一步處理。結(jié)果python傳回的數(shù)據(jù),在前端顯示亂碼了,而且得出的結(jié)果與單獨運行python代碼完全不同,一句話,就是php調(diào)用python程序期間出錯了。
我很認(rèn)真的檢查了好幾遍,確定自己php和python所有的編碼都是用的utf-8編碼,所以這一點是毋庸置疑的,那么問題究竟出在哪呢?php調(diào)用python語句是
$job = "有責(zé)任心,擅長JAVA";//傳入的文本信息
$area = 'E:/text/sim_str.py';//Python程序的地址
$cmd = system("python3 $area 2>C:/Users/Administrator/Desktop/2.txt $job",$ret);//2>是將報錯內(nèi)容定位到這個文件,$ret是一個返回參數(shù),0是正常,1是出錯。
![](http://img.jbzj.com/file_images/article/201903/2019329154342680.png?2019229154358)
最后經(jīng)過多次的測試,我發(fā)現(xiàn)傳過去時對文字的編碼出現(xiàn)了問題,應(yīng)該不是UTF-8編碼了。有位大神說,這是因為windows系統(tǒng)會自己對傳輸?shù)男畔⑦M(jìn)行再次編碼。然后 我想直接改編碼,結(jié)果這個python3編碼改變出現(xiàn)了問題。最后我的解決方案是不通過系統(tǒng)傳送,而是直接通過第三方數(shù)據(jù)庫。雙方都調(diào)用數(shù)據(jù)庫。一切都可以解決了。
PS:后來又遇見過這種問題,我將python代碼進(jìn)行了修改,讓它最終可以直接只傳遞數(shù)字,再在前端對數(shù)字進(jìn)行判斷。
以上所述是小編給大家介紹的php調(diào)用python文件詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- 解決Python3 被PHP程序調(diào)用執(zhí)行返回亂碼的問題
- python如何調(diào)用php文件中的函數(shù)詳解