Ne yaptığınıza bağlı olarak, system() veya popen() mükemmel olabilir. Python betiğinin çıktısı yoksa veya Python komut dosyasının çıktısının doğrudan tarayıcıya gitmesini istiyorsanız, sistemi() kullanın. Python komut dosyasının standart girdisine veri yazmak istiyorsanız veya Python komut dosyasının standart çıktısını php olarak okuyarak popen() kullanın. popen() sadece okumanıza veya yazmanıza izin verir, ancak ikisini de değil. Her ikisini de isterseniz, proc_open()'u kontrol edin, ancak programlar arasında iki yönlü iletişim ile, her programın diğerinin bir şey yapmasını beklediği, kilitlenmeleri önlemek için dikkatli olmanız gerekir.
Kullanıcı tarafından sağlanan verileri Python komut dosyasına iletmek isterseniz, dikkat etmeniz gereken en önemli şey komut enjeksiyonudur. Dikkatli değilseniz, kullanıcınız size "; evilcommand;" gibi verileri gönderebilir. ve programınızın iradesine karşı keyfi komutlar yürütmesini sağlayın.
escapeshellarg() ve escapeshellcmd() bu konuda yardım edebilir, ama şahsen ben çabuk-için bu tür şeyleri hep yapıyor
preg_replace('/[^a-zA-Z0-9]/', '', $str)
Çok teşekkür ederim! Bu çok kapsamlıydı –
Alt işlem modülü, doğrudan os.Popen [n] kullanılarak değiştirildi. Bunun yerine kullanmalısın. –
@Nick Stinemates: PHP fonksiyonlarından bahsediyoruz;) – Glaslos