?
Solved

PHP front end to execute python scripts

Posted on 2009-05-14
7
Medium Priority
?
1,916 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
5 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 1500 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

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
It’s a season to be thankful, and we’re thankful for users like you who engage on site, solve technology problems, and network with others in the industry. What tech are we most thankful for? Keep reading.
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Suggested Courses
Course of the Month16 days, 17 hours left to enroll

862 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