刚刚学习php扩展的新手。如果我想找php现有的函数,如何在内核中找呢?比如说var_dump,print_r,或者mysql,mysqli的函数应该如何找,如何调用呢?
刚刚学习php扩展的新手。如果我想找php现有的函数,如何在内核中找呢?比如说var_dump,print_r,或者mysql,mysqli的函数应该如何找,如何调用呢?
查看PHP函数的C语言实现:cd php-src
查找 grep -rn "PHP_FUNCTION(socket_accept)" ./ext
返回 ./ext/sockets/sockets.c:938:PHP_FUNCTION(socket_accept)
查找 grep -rn "PHP_FUNCTION(array_merge)" ./ext
返回 ./ext/standard/array.c:2266:PHP_FUNCTION(array_merge)
可以看出,PHP库函数的基本都在php-src/ext目录下,里面有具体函数库比如socket,一般的函数基本都在标准库standard.
PHP源码的几个重要目录:
ext(扩展) 108M
Zend(引擎) 9.2M
sapi(cli/cgi/mod_php/fpm) 3.1M
可以用这个 {OpenGrok 搜索一下,搜索之前先选择PHP版本,比如搜索函数,在
Definition
搜索框中输入函数名即可。例如搜索
var_dump
函数,就可以搜索到ext/standard/php_var.h
头文件,进而可以找到ext/standard/php_var.c
文件中的函数实现:PHPAPI void php_var_dump(zval **struc, int level TSRMLS_DC)
函数.调用的话引入头文件,然后调用
PHPAPI
定义的函数名就可以了吧