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