Solved

PHP front end to execute python scripts

Posted on 2009-05-14
7
1,862 Views
Last Modified: 2013-12-12

Hi Experts,
I need some help with a small web front end (PHP) to execute my many python scripts and display the output in the webpage, the problem I cannot get my head around is how i execute the script and map this to the output display.

My small uncompleted example code is below and any help would be greatly appreciated.

cheers

<?PHP
 
$in_scripts     = $_POST['scripts'];
?>
<html><head><title>TEST PHP Front end for python scripts</title>
</head><b>Front end for running python scripts<b><body>
<form action='' method='post'>
</label><br />
 
<?php
        $scripts = array (
                        "pythonscript1",
                        "pythonscript2",
                );
?>Python scripts:&nbsp;
 
        <select name="scripts" id="scripts" value=''>
                        <?php
                                while($nt=each($scripts))
                                {
                                        if ($nt[1] == $in_scripts)
{$scripts_checked="selected";} else {$scripts_checked="";}
                                        echo "<option value='$nt[1]'
$scripts_checked>$nt[1]</option><BR>";}
?>
        </select>
</td>
<BR>
<input type="submit" value="Execute script" />
</form>
<?php
 
if(isset($_REQUEST['SIPT'])) {
  echo <<<END
<pre>Script output 
END;
 
  if ($in_scripts == "pythonscript1") { echo "<BR>pythonscript1";}
    if ($in_scripts == "pythonscript2") { echo "<BR>pythonscript2";}
} 
?>
</body>
</html>

Open in new window

0
Comment
Question by:wayboo
7 Comments
 
LVL 14

Expert Comment

by:shobinsun
ID: 24392359
Hi,

I think you want this:

From the following you get the idea.

Use exec() for running python scripts.

Hope this will help you.

Regards
<?PHP
 
$in_scripts     = $_POST['scripts'];
?>
<html><head><title>TEST PHP Front end for python scripts</title>
</head><b>Front end for running python scripts<b><body>
<form action='' method='post'>
</label><br />
 
<?php
        $scripts = array (
                        "pythonscript1",
                        "pythonscript2",
                );
?>Python scripts: 
 
        <select name="scripts" id="scripts" value=''>
                        <?php
                                while($nt=each($scripts))
                                {
                                        if ($nt[1] == $in_scripts)
{$scripts_checked="selected";} else {$scripts_checked="";}
                                        echo "<option value='$nt[1]'
$scripts_checked>$nt[1]</option><BR>";}
?>
        </select>
</td>
<BR>
<input type="submit" value="Execute script" />
</form>
<?php
 
  if ($in_scripts == "pythonscript1") { 
echo "<BR>pythonscript1";
exec("myprogram.py");
}
    if ($in_scripts == "pythonscript2") { 
echo "<BR>pythonscript2";
exec("myprogram1.py");
}
 
?>
</body>
</html>

Open in new window

0
 

Author Comment

by:wayboo
ID: 24408168
Hi Shobinsun,
Thanks for this but it does not display the output through the webpage, I have made a few modification and get some output but it's not all of it, could you take a look?

cheers

<?PHP
 
$in_scripts     = $_POST['scripts'];
$output = exec("/var/www/testmsan.py");
$output2 = exec("/var/www/testmsan2.py");
?>
<html><head><title>TEST PHP Front end for python scripts</title>
</head><b>Front end for running python scripts<b><body>
<form action='' method='post'>
</label><br />
 
<?php
        $scripts = array (
                        "pythonscript1",
                        "pythonscript2",
                );
?>Python scripts: 
 
        <select name="scripts" id="scripts" value=''>
                        <?php
                                while($nt=each($scripts))
                                {
                                        if ($nt[1] == $in_scripts)
{$scripts_checked="selected";} else {$scripts_checked="";}
                                        echo "<option value='$nt[1]'
$scripts_checked>$nt[1]</option><BR>";}
?>
        </select>
</td>
<BR>
<input type="submit" value="Execute script" />
</form>
<?php
 
  if ($in_scripts == "pythonscript1") { 
 
 
echo "<BR>$output";
 
}
    if ($in_scripts == "pythonscript2") { 
 
echo "<BR>$output2";
}
 
?>
</body>
</html>

Open in new window

0
 

Expert Comment

by:iamkorvus
ID: 24435263
Just try using system() instead of exec() -- it outputs the results by default.  Depending on your output, you may also want to stick it in a <pre>...</pre> block to make sure the output isn't interpreted as HTML if it is not supposed to be.

http://us2.php.net/manual/en/function.system.php
0
 
LVL 4

Accepted Solution

by:
manavsi earned 500 total points
ID: 24439049
well, did u try PiP???

Link: www.csh.rit.edu/~jon/projects/pip/

I think this is what you need... :)

HTH
Manavsi
0
 
LVL 1

Expert Comment

by:tristan625
ID: 24467298
a few pointers hope they help
1) import cgi into your scripts,this way you can directly return the output as desired
2) convert your scripts in web services
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
The viewer will learn how to count occurrences of each item in an array.

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now