Solved

PHP front end to execute python scripts

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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
The Windows functions GetTickCount and timeGetTime retrieve the number of milliseconds since the system was started. However, the value is stored in a DWORD, which means that it wraps around to zero every 49.7 days. This article shows how to solve t…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

713 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