Intereting Posts
Перезагрузка nginx & php5-fpm не обновляет изменения в php.ini Команда CRON для запуска URL-адреса каждые 5 минут PHP изменить url в html В чем разница между if (! Variable) и if (isset ($ variable))? PHP эквивалент для Java Triple DES шифрование / дешифрование Мне нужна помощь при отправке результатов jQuizzy через электронную почту QuickBooks обнаружил ошибку при анализе предоставленного текстового потока XML Ошибка MySQL / PHP: Разрешено только одно использование каждого адреса сокета (протокол / сетевой адрес / порт) Переслать данные из одного действия контроллера в другое в yii2 Regexp для определения времени вызова по ссылкам в исходном коде PHP mysqli_fetch_array Дает мне повторяющиеся строки is_numeric, intval, ctype__digit .. можете ли вы на них положиться? как сделать хорошие переписанные URL-адреса с маршрутизатора Uncaught TypeError с jQuery и WordPress? Выбор данных из mySQL с использованием идентификатора в URL-адресе

Как я могу получить пользовательский ввод между php-кодом (от клиента к серверу)?

Я создал php-код для запуска java-файлов и предоставления результата пользователю через веб-браузер. В основном я пытаюсь создать интерактивную веб-консоль на основе barebones. Однако это также должно работать для java-файлов, которые имеют пользовательский ввод, такой как объект Scanner.

Вот пример java-файла для тестирования.

import java.util.Scanner; public class JavaScannerExample { public static void main (String[] args) { // create a scanner so we can read the command-line input Scanner scanner = new Scanner(System.in); // prompt for the user's name System.out.print("Enter your name: "); // get their input as a String String username = scanner.next(); // prompt for their age System.out.print("Enter your age: "); // get the age as an int int age = scanner.nextInt(); System.out.println(String.format("%s, your age is %d", username, age)); } } 

В настоящее время я решил, как это сделать в php. С предопределенным набором параметров.

 <?php $JAVA_HOME = "C:\Java\jdk1.7.0_79"; $PATH = "$JAVA_HOME\bin"; putenv("JAVA_HOME=$JAVA_HOME"); putenv("PATH=$PATH"); $result = shell_exec("javac JavaScannerExample.java 2>&1"); $progout = ""; $inputlist = array("32", "Mike"); if ($result == ""){ $options = ["bypass_shell" => true]; $proc=proc_open("java JavaScannerExample", array( array("pipe","r"), array("pipe","w"), array("pipe","w") ), $pipes,NULL,NULL,$options); if (is_resource($proc)) { $line_limit = 1024; $bool = true; while ($bool) { sleep(1); $b = proc_get_status($proc)["running"]; if ($b == 1) { // There are still questions $inputval = array_pop($inputlist); $q = fread($pipes[1], $line_limit); $progout = $progout.$q.' '.$inputval.'<br>'; fwrite($pipes[0],$inputval."\n"); }else{ //Program finished executions.. Get final line $bool = false; $finaloutput = fread($pipes[1], $line_limit); $progout = '<br>'.$progout.$finaloutput; fclose($pipes[0]); fclose($pipes[1]); }//End Else }//End While echo $progout; }//End Proc }//End If else{ echo $result; } ?> 

Вот результат выполнения PHP-кода с образцом java-файла

 Enter your name: Mike Enter your age: 32 Mike, your age is 32 

Если вы посмотрите на линию

 $inputlist = array("32", "Mike"); 

Я передаю параметры жестко закодированным образом.

Однако я хочу, чтобы пользователь мог вводить данные через веб-браузер для параметров. Поэтому вместо строки

 $inputval = array_pop($inputlist); 

Мне нужно приостановить выполнение PHP-кода. Затем, получите параметр от пользователя и сохраните его в переменной $ inputval и выполните php-код. Я думаю, нам, возможно, придется использовать javascript / jquery, используя ajax для этого. Но я не знаю, как это сделать.

Пожалуйста, помогите мне с этим вопросом. Пример кода / Псевдокод будет высоко оценен.