Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 16:36   #1
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию Нужно в PHP принять данные из CGI

Как в PHP принять данные возвращаемые из CGI(c++) через stdout?
Т.е. CGI не напрямую возвращает веб страницу клиенту, а возвращает полученные значения для PHP.
Готовые примеры или где об этом почитать. В инете инфа только как отсылать параметры через GET, POST и т.д. и получать данные в CGI через stdin.
exploys вне форума Ответить с цитированием
Старый 22.05.2009, 14:29   #2
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

Только если вызывать программу непосредственно из php с помощью exec().
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Старый 23.05.2009, 01:43   #3
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Хорошо, и какими функциями в таком случае обмениваться данными?
exploys вне форума Ответить с цитированием
Старый 23.05.2009, 03:48   #4
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

С помощью exec() запускаете бинарник. Через аргументы командной строки передаёте входные данные.

В массив $output получаете вывод программы в stdout. Это выходные данные.
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Старый 26.05.2009, 19:42   #5
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Необходимо написать распределенное приложение.
Веб-часть посылает коды нажатий клавишь в программу написанную на C++. А C++ должна возвращать коды действий на эти нажатия.
В этом случае самый подходящий CGI или чтото ещё?
exploys вне форума Ответить с цитированием
Старый 27.05.2009, 00:57   #6
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

От ожидаемой нагрузки зависит. Если всеми пользователями в совокупности нажимается не больше десяти кнопок в минуту — пожалуйста, запускайте CGI или хоть из php через exec() вашу программу на C++ вызывайте.

Если же запросов будет больше, то вызывать CGI на каждое нажатие кнопки — это смертоубийство. При средней активности можно попробовать воспроизвести логику вашей C++ программы на php (Apache + mod_php или nginx + php-fpm, желательно без использования тяжёлых php-фреймворков или библиотек). До определённого уровня нагрузки хватит.

Ну а если планируется высокая посещаемость и постоянная активность пользователей, то в идеале ваша программа на C++ (или на чём-нибудь ещё) должна слушать 80 порт и обрабатывать запросы настолько быстро, насколько может. Если такую реализацию писать лень, то можно использовать опять же FastCGI (только уже не с PHP).
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Старый 28.05.2009, 14:38   #7
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Да, именно FastCGI и подходит. Спасибо!
Впринципе покапал здесь http://www.fastcgi.com
Не подскажите где накопать литературу по нему на русском?
И какие сервера лучше использовать для максимального посещения lighttpd, nginx или ещё какой-то?

PS. С php FastCGI никак не получится использовать, а С++ c ActionScript через FastCGI?

Последний раз редактировалось exploys; 28.05.2009 в 14:41.
exploys вне форума Ответить с цитированием
Старый 28.05.2009, 19:33   #8
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

По-русски — не знаю, не задавался как-то таким вопросом В википедии кое-что есть, но английскую документацию тоже придётся почитать.

Веб-сервер выберите тот из легковесных, который быстрее получится настроить. Не принципиально.

PHP работает через FastCGI, но радости от этого никакой. C++ — пожалуйста. А насчёт ActionScript что имеете в виду? Это же для Flash язык.
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Старый 30.05.2009, 23:48   #9
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Я имею ввиду что необходимо разделение: логику на C++, анимацию и интерфейс на ActionScript. И весь вопрос как эффективнее взаимодействовать между ними?

PHP через FastCGI ничем не отличаеться от PHP с CGI.
exploys вне форума Ответить с цитированием
Старый 31.05.2009, 01:17   #10
cronfy
Пользователь
 
Регистрация: 09.10.2008
Сообщений: 92
По умолчанию

Цитата:
Сообщение от exploys Посмотреть сообщение
Я имею ввиду что необходимо разделение: логику на C++, анимацию и интерфейс на ActionScript. И весь вопрос как эффективнее взаимодействовать между ними?
Можно обмениваться данными с сервером через LoadVars или через XML (вот даже видеоурок про Flash, MySQL, PHP и XML).

Цитата:
PHP через FastCGI ничем не отличаеться от PHP с CGI.
Отличается. В CGI интерпретатор запускается на каждый запрос. В FastCGI интерпретатор запускается, обрабатывает N запросов (сколько настроите), и потом перезапускается.
SPRINTHOST.RU — вот, что я люблю ;-)
cronfy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СРОЧНО! Нужно соединить данные из 2-х таблиц Serrgg Microsoft Office Excel 3 31.12.2008 15:31
Нужно реализовать на php такую штуку samiro PHP 2 08.02.2008 22:51
StringGrid. Нужно вводить данные (записи). Максим-2 Общие вопросы Delphi 5 29.07.2007 19:15
Мне нужно выбрать данные из первого запроса, если он вернул хоть одно число=числу из nata Общие вопросы Delphi 8 05.06.2007 23:57