목차
第一步、生成代码
第二步、修改配置
第三步、实现功能
第四步、编译扩展
第五步、添加扩展
백엔드 개발 PHP 튜토리얼 PHP扩展开发详细教程

PHP扩展开发详细教程

Jun 20, 2016 pm 01:01 PM
비디오 튜토리얼

在几种情况下,我们会需要进行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这个文件,测试扩展了。


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Vue 튜토리얼 추천: 2023년 최신 vue.js 비디오 튜토리얼 선택 5개 Vue 튜토리얼 추천: 2023년 최신 vue.js 비디오 튜토리얼 선택 5개 Sep 20, 2018 pm 02:20 PM

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

2023년 최신 Layui 동영상 튜토리얼 추천(추천 컬렉션) 2023년 최신 Layui 동영상 튜토리얼 추천(추천 컬렉션) Jul 19, 2021 pm 05:22 PM

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

깊은 사용을위한 FAQ 요약 깊은 사용을위한 FAQ 요약 Feb 19, 2025 pm 03:45 PM

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

2023년 최신 Swoole 동영상 튜토리얼 추천(초급부터 고급까지) 2023년 최신 Swoole 동영상 튜토리얼 추천(초급부터 고급까지) Oct 25, 2019 pm 02:09 PM

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

2023년 최신 WordPress 비디오 튜토리얼 권장 사항 2023년 최신 WordPress 비디오 튜토리얼 권장 사항 Oct 25, 2019 pm 01:12 PM

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

2023년 최신 phpcms 비디오 튜토리얼 권장사항(2차 개발을 위해 배워야 함) 2023년 최신 phpcms 비디오 튜토리얼 권장사항(2차 개발을 위해 배워야 함) Oct 25, 2019 pm 03:45 PM

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

2023년 dedeCMS 추천 동영상 튜토리얼 2023년 dedeCMS 추천 동영상 튜토리얼 Oct 25, 2019 pm 01:56 PM

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

2023년 최신 Empire cms 동영상 튜토리얼 추천(컬렉션) 2023년 최신 Empire cms 동영상 튜토리얼 추천(컬렉션) Oct 25, 2019 pm 02:30 PM

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

See all articles