自己寫PHP擴充套件之建立乙個普通變數

2021-06-05 22:31:23 字數 1586 閱讀 3607

宣告:本文為斯人原創,全部為作者一一分析得之,有不對的地方望賜教。

php寫擴充套件..

如果您還麼有讀  

原:用c/c++擴充套件php

建議您先看一下 

這篇文章..

今天來個簡單的..我們用擴充套件方式建立乙個變數 $siren.

然後在php檔案裡面輸出這個變數.

1. 執行原始碼目錄中的 ext_skel –extname=siren

執行成功過後就會在php-src/ext/目錄下生成乙個siren的檔案件,裡面包含了擴充套件的基本結構.

2.修改config.m4

因為我的系統是linux所以要修改此檔案,我們採用so模組的形式載入,所以編輯config.m4檔案

dnl php_arg_with(siren, for siren support,

dnl make sure that the comment is aligned:

dnl [ --with-siren include siren support])

3.編輯php_siren.h

此檔案是乙個標頭檔案,包含了我們函式的定義.

我要新建乙個variable函式,首先需要在此檔案裡面加一行**:php_function(variable); 可以理解為宣告乙個函式

4.修改siren.c原始檔

在siren_functions陣列裡面新增一行 php_fe(variable,null);

然後在 最下面新增如下**

php_function(variable)

zval介面用來儲存變數的資訊

make_std_zval巨集用來分配記憶體空間

zval_string巨集給zval結構設定資訊.

const char *__s=(s);                    \

z_strlen_p(z) = strlen(__s); \

z_strval_p(z) = (duplicate?estrndup(__s, z_strlen_p(z)):(char*)__s);\

z_type_p(z) = is_string;

如果不懂 請參見 原創:php核心研究:hash表和變數

最後在php-src/ext/siren目錄下執行

1. php安裝目錄/bin/phpize

2. ./configure –with-php-config=/php安裝目錄/bin/php-config

3. make && make install

這樣 執行後就會在 php的擴充套件目錄下生成乙個 siren.so檔案

4. 修改php.ini extension=siren.so 開啟擴充套件

5. 編寫php檔案 執行 variable(); 然後 echo $siren;

看看是不是輸出了 「this is siren」呢?

怎麼樣 是不是很簡單..

原文出處:

自己寫PHP擴充套件之建立乙個類

上一章用擴充套件建立了乙個變數.這次來個大的.我們建立乙個類.然後在php裡面去呼叫這個類.生成擴充套件及修改 不知道的這裡 這裡就不談了.比如我們要建立乙個類.php 如下class person public function destruct public function getproper...

PHP擴充套件開發之建立乙個類

執行環境 php7.0以上版本和以下版本建立流程和使用的函式可能會有些差異 第一步,先生成乙個擴充套件骨架 cd php 7.1.10 cd ext ext skel extname clas tension vim clas tension config.m4去掉前面的dnl dnl php ar...

自己寫的乙個PHP上傳類

主要功能 檔案上傳,獲取檔名,獲取檔案大小,隨機生成新檔名,獲取檔案型別,生成縮圖,返回縮略 件名,返回上傳後生成的檔案的檔名,返回上傳後的檔案路徑 class ieb upload if dirpath else 檢查檔案是否存在 function scanfile return scan 獲取檔...