Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как использовать интерпретатор PHP из C++?


Автор: ZVano 9.6.2011, 12:40
Нужно в программе С++ выполнить текст PHP-скрипта и получить результат.
Запуск php.exe с параметрами не подходит.

Что можно применить для решения задачи?

Автор: azesmcar 9.6.2011, 12:49
Еще можно подгрузить DLL.

Автор: boostcoder 9.6.2011, 12:54
это?: http://stackoverflow.com/questions/705443/how-to-mix-up-c-and-php

Автор: ZVano 9.6.2011, 14:13
Цитата(azesmcar @  9.6.2011,  12:49 Найти цитируемый пост)
Еще можно подгрузить DLL

Подходит. Есть где глянуть примеры?


Цитата(boostcoder @  9.6.2011,  12:54 Найти цитируемый пост)
это?: http://stackoverflow.com/questions/705443/...ix-up-c-and-php

Не то. Мне нужно обратное действие.
Код

How to Mix up C++ and php?
Как смешивать C + + и PHP?

I was wonder is it possible to write some C or C++ code and compile them and use them inside php?
Интересно, можно ли написать код на С или С++, скомпилировать, а затем использовать в PHP?

Ответ:
You might want to check out SWIG, a general tool for wrapping libraries so that they may be called from a variety of languages.

http://ru.wikipedia.org/wiki/SWIG
SWIG (англ. Simplified Wrapper and Interface Generator) — свободный инструмент для связывания программ и библиотек написанных на C/C++ со скриптовыми языками, такими как Tcl, Perl, Python, Ruby, PHP или другими языками наподобие Java, C#, Scheme или OCaml.

Автор: boostcoder 9.6.2011, 14:16
Цитата

or also is it possible to write php library using C and C++ ?

Автор: ZVano 9.6.2011, 14:24
Цитата(boostcoder @  9.6.2011,  14:16 Найти цитируемый пост)
or also is it possible to write php library using C and C++ ?

Код

or also is it possible to write php library using C and C++ ?
или же это можно писать PHP библиотеки с использованием C и C + +?

Если я прамльно понимаю, речь идет о написании на C|C++ библиотек, которые будут загружаться PHP-интерпретатором.
php.ini
Код

...
;extension=php_bz2.dll
extension=php_mysql.dll
;extension=php_xsl.dll
;extension=php_zip.dll
...


Или я ошибаюсь?

Автор: boostcoder 9.6.2011, 14:28
ZVano, я понял что речь про CGI. хотя...

Добавлено через 7 минут и 53 секунды
хотя нет. я все напутал. сорри.

Автор: Dem_max 9.6.2011, 15:21
посмотри исходники HTTP сервера, там есть вызов PHP

Автор: Absinthe 10.6.2011, 11:03
Цитата

Еще можно подгрузить DLL.
 Черезпопный метод. Есть стандартные средства.

Цитата

посмотри исходники HTTP сервера, там есть вызов PHP
 А не проще ли почитать документацию, где все детально описано вместо ковыряний в коде?

Гуглить слова embedding и SAPI.

Автор: Dem_max 10.6.2011, 12:49
Цитата

Черезпопный метод. Есть стандартные средства.

Какие такие средства ? COM вызова ? че то сомневаюсь что у PHP интерпретартора такое есть, в HTTP сервере все тот же DLL подгружается.

Автор: Absinthe 10.6.2011, 14:19
Цитата

Какие такие средства ? COM вызова ? че то сомневаюсь что у PHP интерпретартора такое есть, в HTTP сервере все тот же DLL подгружается.
 Я написал выше какие.

А используется динамическая или статическая библиотека - разницы нет. Подключение DLL - это опциональная часть нормального способа.

Автор: ZVano 14.6.2011, 09:23
Цитата(Absinthe @  10.6.2011,  11:03 Найти цитируемый пост)
 А не проще ли почитать документацию, где все детально описано вместо ковыряний в коде?Гуглить слова embedding и SAPI.

Погуглил. Это то, что надо. Спасибо.

PS: Чуствую, долго мне прийдется копаться в этой теме.
PPS: Ссылки на HOWTO приветствуются.

Автор: Absinthe 14.6.2011, 14:41
Цитата

PPS: Ссылки на HOWTO приветствуются.
 Книга автора  Шлосснейгл. Там все детально и полно описано, проблем не возникало.

Автор: rvncerr 22.6.2011, 19:01
А не проще ли копать в сторону FastCGI и соединения по сокету?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)