PHP扩展开发详细教程
在几种情况下,我们会需要进行PHP扩展开发:
1、PHP本身无法访问的资源或是调用,
2、通过扩展的方式可以实现处于性能和效率的考虑,
3、用C实现会更好
4、处于商业或代码保护考虑,将代码封装起来
5、为了更深入的了解PHP,从这里入门
假设有这么一个扩展,提供一个叫ccvita_string的函数。下面详细介绍怎么样制作这样一个PHP扩展:
第一步、生成代码
PHP为了扩展开发的方便,提供了一个类似代码生成器的工具ext_skel,具体可以参见说明。首先我们创建一个文件scutephp.skel,它的内容为
string scutephp_string(string str)
就是告诉ext_skel这个东西,我们要做的扩展里面有个函数叫scutephp_string。然后执行
cd usr/src/php-5.3.8/ext/<br />./ext_skel --extname=scutephp --proto=scutephp.skel<br />cd scutephp/
这时候,ccvita这个扩展的代码框架就已经出来了。
第二步、修改配置
然后修改config.m4文件将10、11、12三行最前面的dnl删除掉,就是将dnl PHP_ARG_WITH(ccvita, for ccvita support,<br />dnl Make sure that the comment is aligned:<br />dnl [ --with-scutephp Include scutephp support])
修改为
PHP_ARG_WITH(scutephp, for scutephp support,<br />Make sure that the comment is aligned:<br />[ --with-scutephp Include scutephp support])
第三步、实现功能
修改源码scutephp.c文件找到将scutephp_string这个函数修改为
PHP_FUNCTION(scutephp_string)<br />{<br /> char *str = NULL;<br /> int argc = ZEND_NUM_ARGS();<br /> int str_len;<br /> char *result;<br /><br /> if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE) <br /> return;<br /><br /> str_len = spprintf(&result, 0, "<a href="%.78s">Link</a>", str);<br /> RETURN_STRINGL(result, str_len, 0); <br />}
第四步、编译扩展
保存后,开始编译/usr/local/php/bin/phpize<br />./configure --with-php-config=/usr/local/php/bin/php-config<br />make
第五步、添加扩展
这时候,一切顺利的话,该扩展已经在modules/scutephp.so这个位置了。下面就是将这个扩展加入到PHP中去,让我们PHP程序可以调用到。cp modules/scutephp.so /usr/local/php/ext/<br />vim /usr/local/php/etc/php.ini<br />extension=/usr/local/php/ext/scutephp.so #在php.ini文件最后增加这一行<br />service php-fpm restart #重启PHP服务<br />cp ccvita.php /data/www/wwwroot/default/
接下来就可以访问scutephp.php这个文件,测试扩展了。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











vue.js는 배우기 쉬운가요? 대답은 다른 라이브러리나 기존 프로젝트를 배우고 통합하는 것이 매우 쉽다는 것입니다. 그렇다면 vue를 사용하는 방법은 무엇입니까? 오늘 PHP 중국어 웹사이트에서는 모든 사람이 배울 수 있도록 2023년 최신 vue.js 무료 동영상 튜토리얼 5개를 추천합니다.

다음은 프런트 엔드 UI 프레임워크인layui에 대한 비디오 튜토리얼입니다. Xunlei 및 Baidu Cloud와 같은 타사 클라우드 디스크 플랫폼에서 다운로드할 필요가 없습니다. 모든 비디오를 온라인에서 무료로 시청할 수 있습니다. 튜토리얼은 더 얕은 것부터 더 깊은 것까지 시작하며, 프론트엔드 기초를 갖춘 분들도 배울 수 있습니다. 설치부터 사례 설명까지, Laui 프레임워크를 더 빠르고 잘 익히는 데 도움이 되도록 포괄적이고 자세하게 설명되어 있습니다.

Deepseekai 도구 가이드 및 FAQ Deepseek은 강력한 AI 지능형 도구입니다. FAQ : 다른 액세스 방법의 차이 : 웹 버전, 앱 버전 및 API 통화간에 기능에는 차이가 없으며 앱은 웹 버전의 래퍼 일뿐입니다. 로컬 배치는 증류 모델을 사용하는데,이 모델은 DeepSeek-R1의 정식 버전보다 약간 열등하지만 32 비트 모델은 이론적으로 90% 정식 버전 기능을 갖습니다. 선술집이란 무엇입니까? Sillytavern은 API 또는 Ollama를 통해 AI 모델을 호출 해야하는 프론트 엔드 인터페이스입니다. 중단 한도는 무엇입니까?

다음은 PHP 비동기 통신 프레임워크 Swoole의 비디오 튜토리얼입니다. Xunlei 및 Baidu Cloud와 같은 타사 플랫폼에서 모두 무료로 시청할 수 있습니다. 튜토리얼은 쉬운 것부터 깊은 것까지 구성되어 있으며, PHP에 대한 기본 지식이 있는 사람이라면 누구나 배울 수 있습니다. 설치부터 사례 설명까지, Swoole 프레임워크를 더 빠르고 잘 익히는 데 도움이 되도록 포괄적이고 자세하게 설명되어 있습니다.

이번에 PHP 중국어 웹사이트에는 모든 사람을 위한 관련 비디오 튜토리얼, 중국어 매뉴얼 및 관련 선별 기사가 모두 무료로 통합되어 있습니다! ! ! 우리가 공유하는 비디오를 통해 언제 어디서나 무료로 튜토리얼 비디오를 시청할 수 있으며 Thunder 또는 Baidu Netdisk에서 다운로드할 필요가 없습니다.

많은 웹마스터들이 보조 개발 및 웹사이트 구축을 위해 PHPCMS를 사용합니다. PHP 중국어 웹사이트에서는 특별히 phpcms 비디오 튜토리얼을 출시했습니다. Baidu Netdisk에서 다운로드하지 않고도 언제 어디서나 무료로 비디오 튜토리얼을 볼 수 있어 매우 편리합니다.

DedeCMS는 단순성, 실용성 및 오픈 소스로 유명합니다. 중국에서 가장 잘 알려진 PHP 오픈 소스 웹사이트 관리 시스템이며, 수년간의 개발 끝에 현재 버전이 가장 인기가 높습니다. 기능적인 측면이나 사용의 용이성 측면에서 상당한 발전과 발전이 있었습니다.

PHP 중국어 웹사이트는 모든 사람을 위한 Empire CMS 비디오 튜토리얼과 관련된 콘텐츠를 편집했습니다. Imperial CMS 설치 비디오 튜토리얼, Imperial CMS 개발 매뉴얼, Imperial CMS 템플릿 리소스 및 일부 Imperial CMS 기술 기사가 포함되어 있습니다.
