Использование кода C / C ++ в PHP без написания расширения - PullRequest
4 голосов
/ 07 ноября 2011

Я прочитал, что можно использовать код C / C ++ в PHP, написав расширение. Есть ли более простой способ, например, обернуть магию или что-то в этом роде (должен сказать, я слышал это слово, но мало знаю, что такое обертка).

Ответы [ 5 ]

4 голосов
/ 07 ноября 2011

Компиляция расширения php не очень сложна. Существует небольшой API для изучения, так же как программы на С имеют функцию main и как передавать переменные в функцию main.

4 голосов
/ 07 ноября 2011

Нет, нет.

PHP анализирует PHP, а не C или его потомки, такие как C ++

Если вы хотите включить C-код в php, как некоторую функцию, написанную на C, тогда он должен быть вызван в расширении и скомпилирован.

Обертка - это код вокруг кода. В большинстве языков, которые вы используете, например, Delphi, Vb и т. Д., Был создан собственный код, который затем вызывает функцию внешнего API и в процессе обрабатывает все необходимые преобразования типов или исправления параметров.

3 голосов
/ 07 ноября 2011

Среди других аналогичных типов tcc может использоваться как интерпретатор C.Вы можете установить его, а затем из PHP отправить ему программу на C:)

$output = `echo -e '#include <stdio.h>\nint main(void) { printf("Hello, World!\\n"); return 0;}' | tcc -run -`;
3 голосов
/ 07 ноября 2011

Невозможно написать C или C ++ внутри PHP-кода. Единственный путь, которым вы можете пойти - это написать расширение для PHP. В качестве альтернативы вы можете взглянуть на HipHop-PHP , который преобразует любой код PHP в высоко оптимизированный код C ++ (он разработан Facebook).

1 голос
/ 07 ноября 2011

В зависимости от того, что вы хотите сделать, вы можете просто скомпилировать свой код в исполняемый файл и затем запустить его в php, например, через exec-функцию .

Если это не такбоюсь, вам придется заняться созданием расширения, но это не так сложно, как кажется, если вы уже знаете c или c ++.

...