本文目錄一覽:
- 1、thinkphp想傳參數給python腳本並接受返回的參數,要怎麼做
- 2、如何實現在PHP中調用Python並獲取運行結果
- 3、php調用python
- 4、如何在PHP服務器里運行python腳本
- 5、如何在linux服務器上用 PHP 執行 python 腳本
- 6、php無法獲取由python提交的post參數
thinkphp想傳參數給python腳本並接受返回的參數,要怎麼做
python中定義一個函數,可以通過正常的只傳入值或key-value的方法調用。但是如果第一個時參數傳入的是key-value的方法,那麼後面的必須都是key-value方法,如果第一個不是,那麼後面的可以根據情況再傳入值就可以了。更多內容你可以去後盾人試試吧,多學習下視頻
如何實現在PHP中調用Python並獲取運行結果
Python的import包含文件功能就跟PHP的include類似,但更確切的說應該更像是PHP中的require,因為Python里的import只要目標不存在就報錯程序無法往下執行。要包含目錄里的文件,PHP中只需要給對路徑就OK。Python中則不同,下面來看看這個例子。
php調用python
py和php放在同一個目錄下面
some.py
——————————————
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import sys
def do_some(a):
return “dosome:%s” % a
if __name__ == ‘__main__’:
a = sys.argv[1]
if a:
T = do_some(a)
print T
——————————————-
t.php
?php
$k = $_REQUEST[‘k’];
if (!empty($k))
{
$k = trim($k);
// $a = array();
// exec(‘python ./some.py ‘.$k, $a);
// echo $a[0];
passthru(‘python ./some.py ‘.$k);
}
然後瀏覽器裡面輸入
瀏覽器會返回dosome:test
被我注釋掉的代碼也可以用來替代passthru
裡面的$a 用來捕獲輸出 不過束腰注意的是 這裡的arry 他是按照每一行’\r\n’當作一個元素
但是passthru 則是你python里的print的原樣輸出
如何在PHP服務器里運行python腳本
python環境在小鳥云云服務器裝好後,就有一個idle工具,你找一下安裝目錄,自帶的編輯器,在任意目錄新建一個
aa.py
文件,用記事本和idle工具都行,輸入print(“hello
world”),如果你使用的是idle,直接按f5,就能查看結果,如果用記事本,打開cmd,進入這個目錄,輸入命令python
aa.py就出來結果了。
如何在linux服務器上用 PHP 執行 python 腳本
如果你有服務器權限的話直接exec命令調用python命令行就行了
php文件:test.php
?php
exec(“python hw.py”,$array,$ret);
echo(“result: “);
print_r($array);
echo(“return value: “.$ret);
?
py文件:hw.py(與php同一目錄)
1
print (“Hello World”);
php執行結果:
result: Array ( [0] = Hello World ) return value: 0
php無法獲取由python提交的post參數
http協議里,POST request的header里必須要有Content-Type來指定request body的MIME type。你用form提交的話,瀏覽器自己會給你寫header,用httplib的話,你需要自己寫。你試試:
h.request(‘POST’,’/test.php’,urllib.urlencode({‘id’:’12345′}),{“Content-type”: “application/x-www-form-urlencoded”})
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/250588.html