Ne yaptığınıza bağlı olarak system () veya popen () mükemmel olabilir. Python betiğinin çıktısı yoksa veya Python betiğinin çıktısının doğrudan tarayıcıya gitmesini istiyorsanız system () kullanın. Python betiğinin standart girişine veri yazmak veya Python betiğinin standart çıktısından php'de veri okumak istiyorsanız popen () kullanın. popen () yalnızca okumanıza veya yazmanıza izin verir, ikisini birden yapamaz. Her ikisini de istiyorsanız proc_open () 'i kontrol edin , ancak programlar arasında iki yönlü iletişimde, her programın diğerinin bir şeyler yapmasını beklediği kilitlenmelerden kaçınmak için dikkatli olmanız gerekir.
Kullanıcı tarafından sağlanan verileri Python betiğine geçirmek istiyorsanız, dikkatli olmanız gereken en önemli şey komut enjeksiyonudur. Dikkatli olmazsanız, kullanıcınız size "; evilcommand;" gibi veriler gönderebilir. ve programınızın isteğiniz dışında rastgele komutlar yürütmesini sağlayın.
escapeshellarg () ve escapeshellcmd () bu konuda yardımcı olabilir, ancak şahsen, iyi bir karakter olmadığı bilinen her şeyi kaldırmayı seviyorum.
preg_replace('/[^a-zA-Z0-9]/', '', $str)