PHP: Nasıl Standart Kütüphane Fonksiyonları Call

4 Cevap php

Ben dinamik web sayfaları için PHP ile başlıyorum. Ben parametreleri ve diğer özel eşyalarını ayar / almak için ANSI C ile yazılmış bazı kütüphaneler var. Ben merak ediyorum, bu işlevleri çağırmak için PHP içinde bir sarıcı kullanmak için basit bir çözüm var mı? Bir varolan sınıf / kütüphane var mı? Ne kendi başıma bunu yapmak için iyi bir uygulama olurdu? Ben harici uygulamalar ve kullanım stdin / stdout çağrı yapmak do istemiyorum!

Basit bir örnek var mı? Ben şimdi Zend belgelerine kazmak istemiyorum, ben sadece karmaşıklığı için bir duygu gerekir.

4 Cevap

Eğer bir DLL içine kütüphaneler paket olabilir? Eğer öyleyse, PHP'nin COM API yoluyla arama yapabilirsiniz.

PHP COM Docs: http://us3.php.net/manual/en/book.com.php

Örnek Kod:

<?php  
$com = new COM("DynamicWrapper");
$com->Register("KERNEL32", "Beep", "i=ll", "f=s", "r=l");
$com->Beep(800, 10);

Aksi takdirde bir özel sarıcı işlevi (yani, execute_through_wrapper ('yourfunc')) içeren bir uzantısı yazabilirsiniz. İşte C. php fonksiyonlarını yazarken bir doc olduğunu

http://php.net/manual/en/internals2.funcs.php

Edit:
http://abhinavsingh.com/blog/2008/12/php-extensions-how-and-why/

Burada bir sarıcı fonksiyon yazmak çok zor olmamalı C uzantıları yazma hızlı bir öğretici olduğunu. Eğer uzatma oluşturduğunuz sonra, dl() ile dinamik olarak yüklenen (çok tehlikeli ve amortismana) olabilir.

http://us2.php.net/manual/en/function.dl.php

Bu durumda da tek seçenek vardır. Dll yükleyici (onun bir win32 ile ilgili api çağrı) bir linux eşdeğer (. Yani yükleyici) yoktur.

Ayrıca aracı olarak gearman hareket olabilir.

Gearman provides a generic application framework to farm out work to other machines or processes that are better suited to do the work. It allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. In other words, it is the nervous system for how distributed processing communicates.

What'a yudum hakkında? http://www.swig.org/

At http://pear.php.net/ I "inline_c" adlı bir uzantısı bulundu. Ne yazık ki ben korunmaz. Bu tercih ediyorum şeyler kinde olacak gibi Ama görünüyor.