Пусть есть некая програмка (q.exe) на вход которой с клавиатуры вводится число, на выходе (на экран) выдаёт введёное число увеличенное на единицу. Эта программа, клиентом, вызывается на удалённом сервере.Ниже приведён код.
Но поочему-то не работает.... не могу понять... то есть какбуд-то число не вводится....
если кому не сложно помогите.
<?php
$num = 5;
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "./error.txt", "a")
);
$process = proc_open("q.exe", $descriptorspec, $pipes);
if (is_resource($process)) {
fwrite($pipes[0], $num);
$result = stream_get_contents($pipes[1]);
echo $result;
fclose($pipes[0]);
fclose($pipes[1]);
proc_close($process);
}
?>
Какой Саша умный, однако!
программа – экзешник
А сервер на какой операционной системе работает?
))) мухахах
весело будет если юниксовый
разумеется винда))))
если я считываю данные, то всё прекрасно работает….
а вот записать и чтоб они обработались не получается(((
эм я немного не допер проблемы
но любой вывод можно перехватить кешированием
<?php
ob_start();
//тут твои функции
$res = ob_get_contents(); ob_end_clean();
?>
мдя намудрил ты ужас как…
ващет в MSDOS есть такая штука как перенаправление
ты не пробывал q.exe < file.txt …
у меня прада к тебе один вопрос
зачем тебе это надо????
нет я конечно на web шеллах юзаю линуксовые комманды
но там у них есть параметры
если ты разработчик проги q.exe селай ей входные данные … ну там ключи например…
Исходя из личного опыта. Если вдруг нужно на виндошном сервере запускать прогу либо это делается для забавы, либо это современый хацкерский софт. Прошли времена, когда хацкеры знали что такое *nix
Возможно они еще не прошли… но люди пишушие сплоиты пишут его для народа на С/C++ выкладывают исходники… продвинуты пользователи компилят их в винде и распростроняют прожки в нете… а вот кто-то пользуется этим….я так думаю
на самом деле всё много проще… это является не более чем учебным примером, и я просто хочу разобраться!!!!
1)у меня есть два массива данных X и Y описывающих поведение некой функции
2) мне нужно просто посчитать оперделённый интеграл
для подсчта интеграла я пишу програмку на Fortran'e (можно на С…не суть важно)
данные поступают от клиента на сервер, результат интегрирования возвращается клиенту.
сначало я записывал данные в текстовый файл, а потом запускап програму из PHP, после чего резудьтат возвращался клиенту.
сейчас же мне интересно направить данные непосредственно из PHP на поток ввода этой самой програмки….без какого-либо посредника: текстового файла, xml – файла, и т.д
(вот здесь то и проблема… поэтому я взял этот тестовый пример с увеличением числа на 1 q.exe)
не спрашивайте зачем это надо просто…. хочется разобраться
я в этом деле дилитант и занимаюсь самостоятельно, если у вас есть литература- выложите ссылки!!!!!
эм
могу предположить 2 решение
1 ты берешь алгоритм своей программки интегральной и переносишь его на php => тебе не надо заморачиватся
2 или же ты делаешь свою прграмму так, что данные она считывает не из ввода а например из тексового файла… и вывод тоже в текстовый файл…
тогда на php у тебя будт формироватся файл ввода и патом анализироватся файл вывода твоей программы.
ммм.. ну это-то как раз не сложно и понятно… черз текстовый файл можно сделать….но это не интересно
в данном случае интересна именно скорость вычисления и точность))
вот я подумал вычислительное ядро реализовать на компилированном коде!!!
два процесса же могут как-то общатся (не через текстовый файл!!!)….. значит есть всё-таки решение))))
это бред.
2 Alexandr Arutyunov: что именно?
точность вычисления не зависит от языка.
а вот про скорость – это правильно подметил, нормальные проекты всегда используют больше одного языка. кстати, на си можно написать экстеншин под рнр.
а вот про взаимодействие программ можно подумать ещё. неужели в голову больше ничего не приходит?
бред вот какой фигней занимаца – вызывать из пхп прогу.
взаимодействие уж точно должно быть не таким ))
2 Alexandr Arutyunov: ну хорошо, что конкретно ты можешь предложить???
вот так абстрактно – ничего.
зависит от конкретных задач (так и надо решать)
абстрактно, для большой "скорости" (+ некое удобство) – могу посоветовать учить python и его фреймворк django
его ща используют в новых проектах Яндекса, а это уже показатель…
я бы продпочёл сокеты.
у питона есть свои плюсы и минусы, но в данном случае непонятно, чем он лучше связки РНР+Другой_Язык