Solved

PHP front end to execute python scripts

Posted on 2009-05-14
7
1,887 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

Salesforce Made Easy to Use

On-screen guidance at the moment of need enables you & your employees to focus on the core, you can now boost your adoption rates swiftly and simply with one easy tool.

Question has a verified solution.

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

Active Directory replication delay is the cause to many problems.  Here is a super easy script to force Active Directory replication to all sites with by using an elevated PowerShell command prompt, and a tool to verify your changes.
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…
The viewer will learn how to count occurrences of each item in an array.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

734 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