淺談php調(diào)用python文件
關(guān)于PHP調(diào)用Python數(shù)據(jù)傳輸問(wèn)題
這是以前大學(xué)時(shí)做項(xiàng)目出現(xiàn)的問(wèn)題,現(xiàn)在把它挪上來(lái),希望給遇到問(wèn)題的未來(lái)大佬給出一些小的思路,請(qǐng)大佬們不要大意的幫我改正,如果出現(xiàn)問(wèn)題或者有更好的解決方法,希望大家可以給出,謝謝!
以前小組開(kāi)展項(xiàng)目實(shí)訓(xùn),我們小組選擇的是大數(shù)據(jù)分析,其中有一個(gè)用python進(jìn)行文本分析之后對(duì)用戶輸入的數(shù)據(jù)進(jìn)行分析,然后輸出對(duì)應(yīng)的崗位及其他。要求是前端將文本要求傳到后臺(tái)php,php調(diào)用python程序處理,再將數(shù)據(jù)傳給php,然后再傳到前端,進(jìn)行下一步處理。結(jié)果python傳回的數(shù)據(jù),在前端顯示亂碼了,而且得出的結(jié)果與單獨(dú)運(yùn)行python代碼完全不同,一句話,就是php調(diào)用python程序期間出錯(cuò)了。
我很認(rèn)真的檢查了好幾遍,確定自己php和python所有的編碼都是用的utf-8編碼,所以這一點(diǎn)是毋庸置疑的,那么問(wèn)題究竟出在哪呢?php調(diào)用python語(yǔ)句是
$job = "有責(zé)任心,擅長(zhǎng)JAVA";//傳入的文本信息
$area = 'E:/text/sim_str.py';//Python程序的地址
$cmd = system("python3 $area 2>C:/Users/Administrator/Desktop/2.txt $job",$ret);//2>是將報(bào)錯(cuò)內(nèi)容定位到這個(gè)文件,$ret是一個(gè)返回參數(shù),0是正常,1是出錯(cuò)。

最后經(jīng)過(guò)多次的測(cè)試,我發(fā)現(xiàn)傳過(guò)去時(shí)對(duì)文字的編碼出現(xiàn)了問(wèn)題,應(yīng)該不是UTF-8編碼了。有位大神說(shuō),這是因?yàn)閣indows系統(tǒng)會(huì)自己對(duì)傳輸?shù)男畔⑦M(jìn)行再次編碼。然后 我想直接改編碼,結(jié)果這個(gè)python3編碼改變出現(xiàn)了問(wèn)題。最后我的解決方案是不通過(guò)系統(tǒng)傳送,而是直接通過(guò)第三方數(shù)據(jù)庫(kù)。雙方都調(diào)用數(shù)據(jù)庫(kù)。一切都可以解決了。
PS:后來(lái)又遇見(jiàn)過(guò)這種問(wèn)題,我將python代碼進(jìn)行了修改,讓它最終可以直接只傳遞數(shù)字,再在前端對(duì)數(shù)字進(jìn)行判斷。
以上所述是小編給大家介紹的php調(diào)用python文件詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
php獲取后臺(tái)Job管理的實(shí)現(xiàn)代碼
從數(shù)據(jù)庫(kù)中取出job 隊(duì)列 創(chuàng)建新的進(jìn)程進(jìn)行執(zhí)行 等待job 結(jié)束2011-06-06
PHP連接MySQL數(shù)據(jù)的操作要點(diǎn)
這篇文章主要介紹了PHP連接MySQL數(shù)據(jù)的操作要點(diǎn),本文直接給出代碼實(shí)例,需要的朋友可以參考下2015-03-03
PHP取整數(shù)函數(shù)常用的四種方法小結(jié)
PHP取整數(shù)函數(shù)常用的四種方法,下面收集了四個(gè)函數(shù);經(jīng)常用到取整的函數(shù),今天小小的總結(jié)一下!其實(shí)很簡(jiǎn)單,就是幾個(gè)函數(shù)而已~~主要是:ceil,floor,round,intval2012-07-07
php下一個(gè)阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字的函數(shù)
php下一個(gè)阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字的函數(shù)...2007-07-07
php數(shù)組函數(shù)序列之a(chǎn)rray_pop() - 刪除數(shù)組中的最后一個(gè)元素
定義和用法array_pop() 函數(shù)刪除數(shù)組中的最后一個(gè)元素。2011-11-11
使用php數(shù)據(jù)緩存技術(shù)提高執(zhí)行效率
使用php緩存技術(shù)時(shí)為了提高效率。在大量的并發(fā)訪問(wèn)面前,獲取數(shù)據(jù)可能成為效率的瓶頸,PHP實(shí)際開(kāi)發(fā)之中針對(duì)數(shù)據(jù)處理進(jìn)行緩存。2022-12-12

