2015-02-12 2 views
1

Возможно, уже есть такие вопросы, но никто из них не отвечает на мой вопрос. У меня есть сценарий, который загружает скрипт Python в каталоге, а затем отображает выход с PHP:Как сделать интерпретатор Python для веб-страницы

<?php 

$param1 = "first"; 
$param2 = "second"; 
$param3 = "third"; 

$command = "scripts/sg.py"; 
$command .= " $param1 $param2 $param3 2>&1"; 

header('Content-Type: text/html; charset=utf-8'); 
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"  />'; 
echo "<style type='text/css'> 

</style>"; 

$pid = popen($command,"r"); 

echo "<body><pre>"; 
while(!feof($pid)) 
{ 
echo fread($pid, 256); 
flush(); 
ob_flush(); 
echo "<script>window.scrollTo(0,99999);</script>"; 
usleep(100000); 
} 
pclose($pid); 

echo "</pre><script>window.scrollTo(0,99999);</script>"; 
echo "<br /><br />Script finalizado<br /><br />"; 
?> 

и является Python код он должен работать, который находится в каталоге:

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
# Script Python Example 
import time 
import sys 

print "Initializing Python Script" 

secret = 1337 
guess = 0 
count = 0 
#Help the user give number range. 
print 'Guess s number it`s between 0 <-> 2000 ' 
while guess != secret: 
guess = input("Guess: ") 
if guess < secret: 
    print "to small" 
elif guess > secret: 
    print "to big"   
count += 1 
print 'You guessed the number in %s try' % count 

Python действительно работает! Однако кажется, что входы Python не работают, они создают ошибку EOF (конец ошибки файла).

Может кто-нибудь помочь мне и предложить способ создания интерпретатора Python, который запускает файл Python, найденный в каталоге. Точно так же, как skuplt.org, но вместо того, чтобы запускать код для пользователей-клиентов, он запускает файл Python, расположенный в каталоге, как указано выше.

+1

Почему Вы ИНВЕСТИЦИОНННЫЕ все? –

+0

Мне было интересно это, @ Хью. Возможно, это действительно формально, как и те приглашения на карте с золотым тиснением. Мы хотели бы пожелать удовольствия вашей компании ... (черт возьми, это боль, которую нужно читать, хотя::). – halfer

+0

Im Извините, я не осознал, что я это делал! :) –

ответ

1

popen открывает трубу, которая является односторонней; вы можете читать или писать на него, но не оба.

Вы хотите использовать proc_open вместо - см http://php.net/manual/en/function.proc-open.php

+0

Спасибо за это, Хью. Он, однако, не работал, так как теперь моя веб-страница не загружается, http://mathswiki.org/submit/tools/newfile.php –

Смежные вопросы