从PHP迭代运行Python脚本
我有一个小python脚本,用于从PHP数组中获取关键字 这是python脚本:从PHP迭代运行Python脚本,python,php,Python,Php,我有一个小python脚本,用于从PHP数组中获取关键字 这是python脚本: import base64 import sys import json from multi_rake import Rake import textdistance input = base64.b64decode(sys.argv[1]) data = json.loads(input) text = "" for i in data: text = text + i[
import base64
import sys
import json
from multi_rake import Rake
import textdistance
input = base64.b64decode(sys.argv[1])
data = json.loads(input)
text = ""
for i in data:
text = text + i['tr'] + "."
rake = Rake()
keywords = rake.apply(text)
print(keywords)
这就是我在PHP中对它的称呼:
$output = shell_exec("python application/libraries/extractor.py " . base64_encode(json_encode($data, JSON_UNESCAPED_UNICODE)) . " 2>&1");
$output = iconv(mb_detect_encoding($output, mb_detect_order(), true), "UTF-8", $output);
我使用的阵列可以如下所示:
array (size=15)
0 =>
array (size=2)
'tr' => string 'Güvenlik amaçlarına giriş' (length=29)
'en' => string 'Introduction to Security Goals.' (length=31)
1 =>
array (size=2)
'tr' => string 'Kriptografinin Matematiği.' (length=27)
'en' => string 'Mathematics of Cryptography.' (length=28)
2 =>
array (size=2)
'tr' => string 'Geleneksel Simetrik Anahtarlı Şifreler.' (length=41)
'en' => string 'Traditional Symmetric Key Ciphers.' (length=34)
3 =>
array (size=2)
'tr' => string 'Cebirsel Yapılar.' (length=18)
'en' => string 'Algebraic Structures.' (length=21)
4 =>
array (size=2)
'tr' => string 'Modern Simetrik Anahtarlı Şifrelere Giriş.' (length=45)
'en' => string 'Introduction to Modern Symmetric Key Ciphers.' (length=45)
5 =>
array (size=2)
'tr' => string 'Gelişmiş Şifreleme Standardı.' (length=33)
'en' => string 'Advanced Encryption Standard.' (length=29)
6 =>
array (size=2)
'tr' => string 'Modern Simetrik Anahtarlı Şifrelerle Şifreleme.' (length=50)
'en' => string 'Encipherment Using Modern Symmetric-Key Ciphers.' (length=48)
7 =>
array (size=2)
'tr' => string 'Stream Ciphers' (length=14)
'en' => string 'Akan Şifreleme Yöntemleri.' (length=28)
8 =>
array (size=2)
'tr' => string 'Ara Sınav' (length=10)
'en' => string 'Midterm Exam' (length=12)
9 =>
array (size=2)
'tr' => string 'Doğrusal ve Diferansiyel Kriptanaliz.' (length=38)
'en' => string 'Linear and DifferentialCryptanalysis.' (length=37)
10 =>
array (size=2)
'tr' => string 'Kriptografik Özet Fonsiyonları.' (length=33)
'en' => string 'Cryptographic Hash Functions.' (length=29)
11 =>
array (size=2)
'tr' => string 'Asimetrik Kriptoloji' (length=20)
'en' => string 'Asymmetric Cryptography' (length=23)
12 =>
array (size=2)
'tr' => string 'Protokollar, Tcp/Ip Protokol ve Hizmetlerinde Güvenlik' (length=55)
'en' => string 'Protocols, Security in Tcp/Ip Networks' (length=38)
13 =>
array (size=2)
'tr' => string 'Güvenlik Duvarları ve Sanal Özel Ağlar' (length=42)
'en' => string 'Firewall and Virtual Private Networking' (length=39)
14 =>
array (size=2)
'tr' => string 'Saldırı Tespit Sistemleri' (length=27)
'en' => string 'Intrusion Detection Systems' (length=27)
当它被调用一次时,它就会相应地工作。但我需要为每个学生上的课打电话。由于性能问题,我找不到一种方法来实现它。它花费了太多的时间,总是超过了最长的时间限制。如何优化此解决方案