亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

php擴展開發(fā)入門demo示例

 更新時間:2019年09月23日 09:14:27   作者:巴八靈  
這篇文章主要介紹了php擴展開發(fā),結合簡單demo實例形式分析了php擴展編寫、編譯生成與運行等相關操作步驟及注意事項,需要的朋友可以參考下

本文實例講述了php擴展開發(fā)。分享給大家供大家參考,具體如下:

一、進入php源碼包,找到ext文件夾

cd /owndata/software/php-5.4.13/ext

文件夾下放的都是php的相關擴展模塊

二、生成自己的擴展文件夾和相關文件

php支持開發(fā)者開發(fā)自己的擴展,提供了ext_skel骨架,用來構建擴展基本文件

./ext_skel --extname=myext

運行完成后,會在ext目錄下生產(chǎn)一個myext擴展目錄

三、編寫一個hello world簡單測試擴展

cd myext

1.編輯myext目錄下的config.m4文件

dnl PHP_ARG_WITH(myext, for myext support,
dnl Make sure that the comment is aligned:
dnl [ --with-myext       Include myext support])

將上面這段改成

PHP_ARG_WITH(myext, for myext support,
 
[ --with-myext       Include myext support])

2.編輯php_myext.h文件

修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled); 這里就是擴展函數(shù)聲明部分,可以增加一

PHP_FUNCTION(myext_helloworld);

3.編輯myext.c文件在這個里面增加一行PHP_FE(myext_helloworld,  NULL)

const zend_function_entry myext_functions[] = {
    PHP_FE(confirm_myext_compiled, NULL)      /* For testing, remove later. */
    PHP_FE(myext_helloworld, NULL)
    PHP_FE_END   /* Must be the last line in myext_functions[] */
};

最后在文件末尾加入myext_helloworld執(zhí)行代碼

PHP_FUNCTION(myext_helloworld)
{
    char *arg = NULL;
  int arg_len, len;
  char *strg;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
    return;
  }
  php_printf("my first ext,Hello World!\n");
  RETRUN_TRUE;
}

四、編譯php擴展

在myext目錄下運行phpize

/usr/local/webserver/php/bin/phpize

安裝擴展

./configure --with-php-config=/usr/local/webserver/php/bin/php-config
 
make && make install

然后在php安裝的目錄下生產(chǎn).so的文件

/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/myext.so

復制myext.so文件到php安裝的擴展目錄下

cp myext.so /usr/local/webserver/php/ext/

編輯php.ini文件加入一行擴展路徑

extension=/usr/local/webserver/php/ext/myext.so

重啟php-fpm

service php restart

查看php擴展是否安裝進去了

/usr/local/webserver/php/bin/php -m|grep myext

確認成功后測試myext打印helloworld

 /usr/local/webserver/php/bin/php -r "myext_helloworld('test');"

或者創(chuàng)建demo.php

<?php
echo myext_helloworld('test');
?>

/usr/local/webserver/php/bin/php demo.php

運行后輸出

my first ext,Hello World!

自此擴展開發(fā)小demo就實現(xiàn)了

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP擴展開發(fā)教程》、《PHP網(wǎng)絡編程技巧總結》、《php curl用法總結》、《PHP數(shù)組(Array)操作技巧大全》、《PHP數(shù)據(jù)結構與算法教程》、《php程序設計算法總結》及《php字符串(string)用法總結

希望本文所述對大家PHP程序設計有所幫助。

相關文章

  • php幾個預定義變量$_SERVER用法小結

    php幾個預定義變量$_SERVER用法小結

    這篇文章主要介紹了php幾個預定義變量$_SERVER用法,實例總結了服務器端預定義變量$_SERVER的常見用法,需要的朋友可以參考下
    2014-11-11
  • Laravel 5.0 發(fā)布 新版本特性詳解

    Laravel 5.0 發(fā)布 新版本特性詳解

    這篇文章主要介紹了Laravel 5.0 發(fā)布 新版本特性詳解,本文講解了目錄結構、Contracts、路由緩存、路由中間、控制器方法注入、認證腳手架等新特性,需要的朋友可以參考下
    2015-02-02
  • PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載實例

    PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載實例

    這篇文章主要介紹了PHP利用func_get_args和func_num_args函數(shù)實現(xiàn)函數(shù)重載的方法,實例展示了PHP實現(xiàn)重載的具體方法,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • PHP基于phpqrcode生成帶LOGO圖像的二維碼實例

    PHP基于phpqrcode生成帶LOGO圖像的二維碼實例

    這篇文章主要介紹了PHP基于phpqrcode生成帶LOGO圖像的二維碼,可實現(xiàn)生成帶logo與不帶logo兩種二維碼的功能,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • PHP中提問頻率最高的11個面試題和答案

    PHP中提問頻率最高的11個面試題和答案

    這篇文章主要介紹了PHP中提問頻率最高的11個面試題和答案,每個公司都有自己的面試標準,面試和問題是完全取決于你在工作中所扮演的角色,當然也和你的編程技能息息相關,需要的朋友可以參考下
    2014-09-09
  • html靜態(tài)頁面調用php文件的方法

    html靜態(tài)頁面調用php文件的方法

    這篇文章主要介紹了html靜態(tài)頁面調用php文件的方法,在進行應用程序開發(fā)過程中非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • PHP最常用的正則表達式

    PHP最常用的正則表達式

    本文將對PHP最常用的正則表達式進行整理介紹。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • PHP依賴注入原理與用法分析

    PHP依賴注入原理與用法分析

    這篇文章主要介紹了PHP依賴注入原理與用法,簡單講述了依賴注入的概念、原理并結合實例形式分析了php實現(xiàn)與使用依賴注入的相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • php面向對象之反射功能與用法分析

    php面向對象之反射功能與用法分析

    這篇文章主要介紹了php面向對象之反射功能與用法,結合實例形式簡單分析了php5面向對象反射的概念及具體用法,需要的朋友可以參考下
    2017-03-03
  • PHP 數(shù)據(jù)庫 常見問題小結

    PHP 數(shù)據(jù)庫 常見問題小結

    揭露 PHP 應用程序中出現(xiàn)的五個常見數(shù)據(jù)庫問題 —— 包括數(shù)據(jù)庫模式設計、數(shù)據(jù)庫訪問和使用數(shù)據(jù)庫的業(yè)務邏輯代碼 —— 以及它們的解決方案。
    2009-06-06

最新評論