PHP: Wie Nennen die Standard-Bibliothek-Funktionen
Fange ich mit PHP für dynamische web-Seiten. Ich habe einige Bibliotheken, geschrieben in ANSI-C für das abrufen/festlegen von Parametern und anderen proprietären Kram. Ich Frage mich, gibt es da eine einfache Lösung zu verwenden, einen wrapper in PHP aufrufen dieser Funktionen? Gibt es eine bereits vorhandene Klasse/Bibliothek? Was wäre die beste Vorgehensweise, um dies zu tun, auf meinen eigenen? Ich will nicht tun, machen Anrufe zu externen Anwendungen und verwenden stdin/stdout!
Gibt es ein einfaches Beispiel zur Verfügung? Ich will nicht zu Graben, durch den Zend-Dokumentation für jetzt, ich brauche nur ein Gefühl für die Komplexität.
- Mögliche Duplikate von Aufruf von C/C++ - library-Funktion von PHP
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Ihr Paket Bibliotheken in eine DLL? Wenn ja, rufen Sie Sie durch die PHP-COM-api.
PHP COM Docs:
http://us3.php.net/manual/en/book.com.php
Beispiel-Code:
Ansonsten können Sie schreiben eine Erweiterung, die enthält ein benutzerdefiniertes wrapper-Funktion (ie, execute_through_wrapper('yourfunc')). Hier ist ein doc auf das schreiben von php-Funktionen in C
http://php.net/manual/en/internals2.funcs.php
Edit:
http://abhinavsingh.com/blog/2008/12/php-extensions-how-and-why/
Hier ist eine kurze Anleitung zum schreiben von Erweiterungen in C. Es sollte nicht allzu schwierig zu schreiben eine wrapper-Funktion. Sobald Sie erstellt die Erweiterung ist, kann es dynamisch geladen werden, durch
dl()
(sehr gefährlich, und abgeschrieben).http://us2.php.net/manual/en/function.dl.php
Sind das die einzigen Möglichkeiten in Ihrem Fall. Gibt es nicht ein linux-äquivalent (.also loader) von der dll-loader (eine win32-bezogene api-Aufruf).
Hätte man auch gearman als Vermittler.
Was ' a über SWIG? http://www.swig.org/
In http://pear.php.net/ ich fand eine Erweiterung namens "inline_c". Leider habe ich nicht gewartet. Aber es sieht so aus wäre die kinde von Sachen, die ich bevorzugen würde.