您好,登錄后才能下訂單哦!
小編給大家分享一下php調用python文件的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
關于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是出錯。
最后經過多次的測試,我發現傳過去時對文字的編碼出現了問題,應該不是UTF-8編碼了。有位大神說,這是因為windows系統會自己對傳輸的信息進行再次編碼。然后 我想直接改編碼,結果這個python3編碼改變出現了問題。最后我的解決方案是不通過系統傳送,而是直接通過第三方數據庫。雙方都調用數據庫。一切都可以解決了。
PS:后來又遇見過這種問題,我將python代碼進行了修改,讓它最終可以直接只傳遞數字,再在前端對數字進行判斷。
以上是“php調用python文件的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。