PHP의 C 확장을 작성하고 나서 다른 확장 라이브러리의 소스 코드 작성 방법을 확인하고 작성 방법을 배우고 싶어서 PHP가 자주 사용하는 컬을 무작위로 골랐습니다. , 결과는 다음과 같습니다. 컬_setopt() 또는 컬_setopt_array()와 같은 함수의 소스 코드는 php의 ext/curl 디렉터리에서 찾을 수 없지만 다음 함수에 대한 정의가 있습니다:
in streams.c 아니요, 하지만 마침내 Interface.c에서 이러한 함수의 캡슐화를 발견했습니다.
_php_curl_setopt() 함수, cur_setopt() 또는 인터페이스.c에 캡슐화된 컬_setopt_array() 등은 모두 이 함수를 호출합니다. 이 함수는 libcurl의 컬_쉬운_세톱트() 함수를 호출하므로 이제 목표는 컬_쉬운_세톱트()가 어디에 있는지 찾는 것입니다.
OS X 시스템에는 libcurl이 있어야 하는데, libcurl 공식 홈페이지에서 소스코드 사본을 다운로드해서 볼 수도 있기 때문입니다. OS X 시스템의 libcurl 버전과는 다르지만요. 일반적으로 일관성이 있어야 하므로 이 버전인 컬-7.40.0 버전을 다운로드했습니다.
검색 결과, cur_easy_setopt는 easy.c에 정의되어 있습니다.
위 내용을 포함해 PHP의 컬 소스코드를 보는 과정을 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.