[PHP] User Defined Extension
Ϊ PHP Ìí¼ÓÀ©Õ¹¿âÊÇÒ»¼þ¼òµ¥µÄÊÂÇé¡£²»¹ýÊ×ÏÈÄã×îºÃ»áÒ»µãµãC/C++±à³Ì¼¼Êõ£¬²¢ÇÒ¶ÔMakefileÓÐÒ»¶¨µÄÁ˽⡣
ÒÔÏÂÊÇÔÚ Linux ϵÄÒ»¸ö¼òµ¥Àý×Ó£º
Ê×ÏÈ£¬½øÈë php Ô´´úÂëĿ¼£¨¼ÙÉèΪ PHP_SRC£¬ÒÔÏÂͬ£©£¬Ê¹Óà php ×Ô´øµÄ ext_skel ¹¤¾ßÉú³ÉÒ»¸öÐÂÀ©Õ¹ mk4php£º
cd PHP_SRC/etc;
./ext_skel --extname=mk4php
Õý³£Çé¿öÏÂÄú»á¿´µ½ÀàËÆÕâÑùµÄÊä³ö£º
Creating directory mk4php
Creating basic files: config.m4 config.w32 .cvsignore mk4php.c php_mk4php.h CREDITS EXPERIMENTAL tests/001.phpt mk4php.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/mk4php/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-mk4php
5. $ make
6. $ ./php -f ext/mk4php/mk4php.php
7. $ vi ext/mk4php/mk4php.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/mk4php/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
´Ëʱ»áÔÚ ext/ Ŀ¼ÏÂÉú³ÉÒ»¸öÒÔ mk4php ÃüÃûµÄĿ¼£¬½øÈ¥¿´¿´¡£
±à¼ ext/mk4php/ Ŀ¼ÏÂÃæµÄ config.m4 Îļþ£¬ÕÒµ½ÏÂÃæÈýÐУ¬É¾µôÇ°ÃæµÄ dnl ǰ׺£º
dnl PHP_ARG_WITH(mk4php, for mk4php support,
dnl Make sure that the comment is aligned:
dnl [ --with-mk4php Include mk4php support])
˵Ã÷£º
1. dnl ÊÇ×¢ÊÍ£¬É¾µô±íʾʹ¸ÄÐÐÉúЧ£¬·ñÔò make µÄʱºò²»»áÉú³ÉÏàÓ¦µÄ modules
2. Ò²¿ÉÒÔʹÓÃÏÂÃæ°¤×ŵĹØÓÚ --enable-mk4php ÄÇÈýÐУ¬Á½ÕßµÄÇø±ðÔÚÓÚÄãµÄÀ©Õ¹ÊÇ·ñÐèÒªÒýÓÃÍⲿµÄ¿â
È»ºó¾ÍÊÇ configure; make; make install
configure µÄʱºò£¬Èç¹ûÄãµÄ apxs ºÍ php-config ²»ÔÚĬÈÏ·¾¶ÉÏ£¬ÔòÐèÒªÖ¸¶¨ËüÃÇ
./configure --with-mk4php --with-apxs=/usr/local/apache/bin/apxs --with-php-config=/usr/local/php/bin/php-config
make
make install
˵Ã÷£º
1. make ³É¹¦Ö®ºó»áÔÚ ext/mk4php/modules/ ÏÂÉú³ÉÏàÓ¦µÄ .so Îļþ
2. make install ¾ÍÊÇ°Ñ modules/* ¸´ÖƵ½ php µÄ extensions Ŀ¼
ÔÙÏÂÀ´¾ÍÊÇÔÚ php.ini ÀïÌí¼ÓÒ»ÐУº
extension=mk4php.so
×îºó¼ì²éÒ»ÏÂÊÇ·ñ°²×°
Ïà¹ØÎĵµ£º
×î½üÔÚGreg Beaver'sµÄblogÉÏ·¢±íµÄһƪÐÂÎÄÕ comparing strings in PHP with the == operator ÖÐÌá¼°ÁËPHPµÄ == ÔËËã·ûÔÚ¶Ô×Ö·û´®½øÐбȽÏʱֵµÃ×¢ÒâµÄÎÊÌâ¡£
ÔÚijЩÇé¿öÏ£¬PHP»á°ÑÀàÊýÖµÊý¾Ý£¨È纬ÓÐÊý×ÖµÄ×Ö·û´®µÈ£©×ª»»³ÉÊýÖµ´¦Àí£¬== ÔËËã·û¾ÍÊÇÆäÖÐÖ®Ò»¡£ÔÚʹÓà == ÔËËã·û¶ÔÁ½¸ö×Ö·û´®½øÐÐËÉÉ¢±È½Ïʱ£¬PHP»á°ÑÀàÊý ......
×¢½â·ûºÅ:
// µ¥ÐÐ×¢½â
/* */ ¶àÐÐ×¢½â
ÒýºÅµÄʹÓÃ
’ ’ µ ......
²»µÃ²»×ÔÒÑдһ¸ö.XML
µÄ²Ù×÷һֱûÓÐÓùý.ÏÂÃæÊÇ×Ô¼ºËѼ¯µÄXML²Ù×÷Àà
DOMDocumentÏà¹ØµÄÄÚÈÝ.
ÊôÐÔ:
Attributes ´æ´¢½ÚµãµÄÊôÐÔÁбí(Ö»¶Á)
childNodes
´æ´¢½ÚµãµÄ×Ó½ÚµãÁбí(Ö»¶Á)
dataType ·µ»Ø´Ë½ÚµãµÄÊý¾ÝÀàÐÍ
Definition ÒÔDTD»òXMLģʽ¸ø³öµÄ½ÚµãµÄ¶¨Òå(Ö»¶Á)
Doctype Ö¸¶¨ÎĵµÀàÐͽڵã(Ö»¶Á)
doc ......
<?
//
½¨Á¢Ò»¸öÖ¸ÏòÐÂCOM×é¼þµÄË÷Òý
$word
=
new
COM(”word
.
application”) or
die
(”Can
'
t start Word!”);
// ÏÔʾĿǰÕýÔÚʹÓõÄWordµÄ°æ±¾ºÅ
//echo “Loading Word, v. {$word->Version}<br>”;
// °ÑËüµÄ¿É¼ûÐÔÉèÖÃΪ0£¨¼Ù£©£¬Èç¹ûÒ ......
¡¾PHPϵÁн̡̳¿ÊǸù¾ÝÏÖÓС¶PHP Manual¡·½øÐÐÊÕ¼¯ºÍÕûÀíËùµÃ£¬ËùÓдúÂë¶¼ÒѾ²âÊÔͨ¹ý¡£ÔÚ×ªÔØ¹ý³ÌÖУ¬Çë×¢Ã÷³ö´¦¡£
Ò»¡¢Ô¤±¸ÖªÊ¶£ºPHP»·¾³µÄ´î½¨
»·¾³µÄ´î½¨ÔÚÇ°ÃæÒѾ¸ø³öÁËÏêϸµÄ˵Ã÷£¬ÍøÖ·Îª£ºhttp://blog.csdn.net/rocket5725/archive/2009/12/28/5090489.aspx¡£
¶þ¡¢µÚÒ»¸öPHPÒ³Ãæ
ÔÚWEB·þÎñÆ÷¸ùĿ¼ÏÂD:\Progra ......