Solved

PHP front end to execute python scripts

Posted on 2009-05-14
7
1,840 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

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

This article will show, step by step, how to integrate R code into a R Sweave 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 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 count occurrences of each item in an array.

708 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

12 Experts available now in Live!

Get 1:1 Help Now