PHP Üzerinden Python Kodları Çalıştırmak
Merhabalar. Bu yazıda PHP üzerinden Python Script çalıştırmayı anlatacağım. Bunu kuru kuruya anlatmak yerine bir kurgu oluşturmak istedim. Çok fazla detaya girip uğraşmayacağım.
Kullanılacaklar:
» jQuery (ajax kullanacağız)
» Python3
» PHP kullanmak için Xampp/Wampserver vb..
Dosyalarımız:
Şimdi uzatmadan konuya geçelim.
Öncelikle index.php veya index.html doyası oluşturalım. Bu dosyaya bir buton, girdi ve çıktı için de textarea ekleyelim. Daha sonra jQuery dosyamızı ve index.js dosyamızı ekleyelim.
index.php/index.html:
Şimdi ise index.js dosyamıza gelelim. Burada AJAX ile sayfa yenilenmeden PHP dosyamızı çalıştıracağız. Ben #run elementine tıklama event'i ekledim daha sonra da içerisinde veriyi çekerek AJAX ile PHP dosyamıza POST ettim. PHP dosyamızdan dönen değeri ise #cikti elementine yazdırıyoruz.
index.js:
Sırada PHP dosyamız var. Zaten asıl konumuz burasıydı. PHP dosyamızda "shell_exec()" kullanarak terminal komutlarını çalıştırabiliyoruz. O zaman biz "shell_exec()" içerisine "python3 script.py" yazarsak script.py dosyamızı çalıştıracaktır. "shell_exec()" aynı zamanda terminaldeki çıktıları bize geri yansıttığı için çalışan kodları kullanıcıya gösterebileceğiz. Basit bir PHP dosya işlemi ile Python dosyamızın içeriğini de girersek alın size Online Python Debugger :trl Dizin içerisine deneme.py isimli bir dosya oluşturup devam edelim.
debugpython.php:
İşlem bu kadar. Şimdi test edelim.
» Kodlarımızı yazalım:
» "Çalıştır" butonuna tıklayalım ve sonuç:
» Yine test amaçlı farkı bir kod ve çıktısı:
Umarım işinize yaramıştır
Merhabalar. Bu yazıda PHP üzerinden Python Script çalıştırmayı anlatacağım. Bunu kuru kuruya anlatmak yerine bir kurgu oluşturmak istedim. Çok fazla detaya girip uğraşmayacağım.
Kullanılacaklar:
» jQuery (ajax kullanacağız)
» Python3
» PHP kullanmak için Xampp/Wampserver vb..
Dosyalarımız:
Şimdi uzatmadan konuya geçelim.
Öncelikle index.php veya index.html doyası oluşturalım. Bu dosyaya bir buton, girdi ve çıktı için de textarea ekleyelim. Daha sonra jQuery dosyamızı ve index.js dosyamızı ekleyelim.
index.php/index.html:
Kod:
<html>
<head>
<title>Online Python Debugger</title>
</head>
<body>
<table>
<tr>
<td>
<button id="run">Çalıştır</button>
</td>
</tr>
<tr>
<td>
<textarea name="" id="girdi" cols="30" rows="10"></textarea>
</td>
</tr>
<tr>
<td>
<textarea name="" id="cikti" cols="30" rows="10" readonly></textarea>
</td>
</tr>
</table>
<script src="jquery.js"></script>
<script src="index.js"></script>
</body>
</html>
Şimdi ise index.js dosyamıza gelelim. Burada AJAX ile sayfa yenilenmeden PHP dosyamızı çalıştıracağız. Ben #run elementine tıklama event'i ekledim daha sonra da içerisinde veriyi çekerek AJAX ile PHP dosyamıza POST ettim. PHP dosyamızdan dönen değeri ise #cikti elementine yazdırıyoruz.
index.js:
Kod:
$(d ocument).ready(function() {
$("#run").click(function() {
var veri = $("#girdi").val();
$.ajax({
method: "POST",
url: "debugpython.php",
data: { veri: veri },
success: function(gelen) {
$("#cikti").val(gelen);
},
});
});
});
Sırada PHP dosyamız var. Zaten asıl konumuz burasıydı. PHP dosyamızda "shell_exec()" kullanarak terminal komutlarını çalıştırabiliyoruz. O zaman biz "shell_exec()" içerisine "python3 script.py" yazarsak script.py dosyamızı çalıştıracaktır. "shell_exec()" aynı zamanda terminaldeki çıktıları bize geri yansıttığı için çalışan kodları kullanıcıya gösterebileceğiz. Basit bir PHP dosya işlemi ile Python dosyamızın içeriğini de girersek alın size Online Python Debugger :trl Dizin içerisine deneme.py isimli bir dosya oluşturup devam edelim.
debugpython.php:
Kod:
<?php
$girdi = $_POST["veri"];
$dosya = fopen('deneme.py', 'w-');
$sonuc = fwrite($dosya, $girdi);
fclose($dosya);
$komut = escapeshellcmd('python3 deneme.py'); // escapeshellcmd() fonksiyonu ile güvenlik sağlayalım. Buranın içeriğini dışarıdan almadığımız için sorun olmaz ama yine de ben yazdım.
$cikti = shell_exec($komut); // shell_exec() fonksiyonu ile komutu çalıştırdık ve ardından terminalden dönen değeri $cikti değişkenine atadık.
echo $cikti; // AJAX'a geri değer dönderiyoruz.
İşlem bu kadar. Şimdi test edelim.
» Kodlarımızı yazalım:
» "Çalıştır" butonuna tıklayalım ve sonuç:
» Yine test amaçlı farkı bir kod ve çıktısı:
Umarım işinize yaramıştır
Son düzenleme: