当前位置:首页 » 编程语言 » php扩展函数

php扩展函数

发布时间: 2023-06-14 14:19:34

php的扩展中回调PHP的函数有多参数的问题

写PHP扩展最好的参考资料是官方代码库,即便不算best practice,也不至于太差。先下载一份php源码,然后在ext目录里搜 call_user_function,把参数个数>=2的列出来。比如 ext/readline/readline.cstatic char **_readline_completion_cb(const char *text, int start, int end)
{
zval params[3];
int i;
char **matches = NULL;
_readline_string_zval(¶ms[0], text);
_readline_long_zval(¶ms[1], start);
_readline_long_zval(¶ms[2], end);
if (call_user_function(CG(function_table), NULL, &_readline_completion, &_readline_array, 3, params) == SUCCESS) {
if (Z_TYPE(_readline_array) == IS_ARRAY) {
if (zend_hash_num_elements(Z_ARRVAL(_readline_array))) {
matches = rl_completion_matches(text,_readline_command_generator);
} else {
matches = malloc(sizeof(char *) * 2);
if (!matches) {
return NULL;
}
matches[0] = strp("");
matches[1] = '\0';
}
}
}
for (i = 0; i < 3; i++) {
zval_ptr_dtor(¶ms[i]);
}
zval_ptr_dtor(&_readline_array);
return matches;
}
看一下call_user_function的签名,它参数是个数组,zval params[]ZEND_API int _call_user_function_ex(zval *object, zval *function_name, zval *retval_ptr, uint32_t param_count, zval params[], int no_separation);
#define call_user_function(function_table, object, function_name, retval_ptr, param_count, params) \
_call_user_function_ex(object, function_name, retval_ptr, param_count, params, 1)
#define call_user_function_ex(function_table, object, function_name, retval_ptr, param_count, params, no_separation, symbol_table) \
_call_user_function_ex(object, function_name, retval_ptr, param_count, params, no_separation)

㈡ PHP扩展之ImageMagick函数执行问题。

试一下这个类吧 phpthumb
配置phpthumb让他使用ImageMagick来生成缩略图
phpthumb是一个功能非常强大的缩略图生成类,支持jpg,bmp,gif,png等格式图片生成。无论您是PHP项目还是其它项目只要你能有一台PHP的主机就可以使用phpthumb带给您编程上的方便。因为他还支持远程图片生成。
phpthumb可以配合ImageMagick来使用,这样就不会再受到PHP内存大小的限制了,还可以生成gif动画。下面就讲如何让phpthumb用ImageMagick来生成生成图片。

无论win平台还是linux平台phpthumb默认是开启ImageMagick的,只不过配置错误和程序有一点小问题。首先就是安装ImageMagick这个程序。不用安装php_imagick这个PHP扩展。phpthumb使用的是命令行操作的,所以php应该可以运行一个进程才可以,不然请选择另外的主机。安装好后请按下面的步骤进行phpthumb的修改。
1.打开phpThumb.config.php查找
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
// Windows: set absolute pathname
$PHPTHUMB_CONFIG['imagemagick_path'] = 'C:/Program Files/ImageMagick-6.6.0-Q16/convert.exe';
} else {
// *nix: set absolute pathname to "convert", or leave as null if "convert" is in the path (location detected with `which`)
//$PHPTHUMB_CONFIG['imagemagick_path'] = '/usr/local/bin/convert';
$PHPTHUMB_CONFIG['imagemagick_path'] = null;
}
将上面的$PHPTHUMB_CONFIG['imagemagick_path'] 设成你安装的正确路径。上面共计有两个地方,第一个是window平台。第二个是LINUX,UNIX平台的。请根据您的系统选择设定。上面红色部分为ImageMagick路径,替换时注意目录分隔符是/不是\。
2.打开phpThumb.class.php
查找 function ImageMagickVersion($returnRAW=false) {在这附近
有if (eregi('^Version: [^0-9]*([ 0-9\\.\\:Q/]+) (http|file)\:', $versionstring[1], $matches)) {
替换成if (eregi('^Version: (.+) (http|file)\:', $versionstring[1], $matches)) {

OK全部设定已经完成您的phpthumb已经自动使用ImageMagick生成图片了。

㈢ 在PHP的mysqli扩展中,连接数据库的函数是什么

mysqli_connect,手册上的例子如下图:

㈣ PHP的扩展模块怎么添加

在PHP/etc 文件夹中加入扩展
在PHP 文件夹下的php.ini文件里 有很多dll文件的地方加入一行 你所添加的扩展的名字xxxx.dll

或者 是 在php.ini中直接打开对应的扩展 ,将目标行的 ; 给去掉
哦,对了,最后记得要重新启动PHP的服务器

㈤ 在服务器配置PHP的时候需要开通几个扩展,请问这几个扩展对我的网站有何用

网络不误导你 ,我也是网络的,扩展全开都行,不妨碍你用就是了,干嘛非要这么细致的分析每个扩展的作用呢?给你一份快餐,要么你吃了,要么你不吃。你会分析其他的情况吗?
扩展库 说明 注解
php_bz2.dll bzip2 压缩函数库 无
php_calendar.dll 历法转换函数库 自 PHP 4.0.3 起内置
php_cpdf.dll ClibPDF 函数库 无
php_crack.dll 密码破解函数库 无
php_ctype.dll ctype 家族函数库 自 PHP 4.3.0 起内置
php_curl.dll CURL,客户端 URL 库函数库 需要:libeay32.dll,ssleay32.dll(已附带)
php_cybercash.dll 网络现金支付函数库 PHP <= 4.2.0
php_db.dll DBM 函数库 已废弃。用 DBA 替代之(php_dba.dll)
php_dba.dll DBA:数据库(dbm 风格)抽象层函数库 无
php_dbase.dll dBase 函数库 无
php_dbx.dll dbx 函数库
php_domxml.dll DOM XML 函数库 PHP <= 4.2.0 需要:libxml2.dll(已附带),PHP >= 4.3.0 需要:iconv.dll(已附带)
php_dotnet.dll .NET 函数库 PHP <= 4.1.1
php_exif.dll EXIF 函数库 需要 php_mbstring.dll。并且在 php.ini 中,php_exif.dll 必须在 php_mbstring.dll之后加载。
php_fbsql.dll FrontBase 函数库 PHP <= 4.2.0
php_fdf.dll FDF:表单数据格式化函数库 需要:fdftk.dll(已附带)
php_filepro.dll filePro 函数库 只读访问
php_ftp.dll FTP 函数库 自 PHP 4.0.3 起内置
php_gd.dll GD 库图像函数库 在 PHP 4.3.2 中删除。此外注意在 GD1 中不能用真彩色函数,用 php_gd2.dll 替代。
php_gd2.dll GD 库图像函数库 GD2
php_gettext.dll Gettext 函数库 PHP <= 4.2.0 需要 gnu_gettext.dll(已附带),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附带)。
php_hyperwave.dll HyperWave 函数库 无
php_iconv.dll ICONV 字符集转换 需要:iconv-1.3.dll(已附带),PHP >=4.2.1 需要 iconv.dll
php_ifx.dll Informix 函数库 需要:Informix 库
php_iisfunc.dll IIS 管理函数库 无
php_imap.dll IMAP,POP3 和 NNTP 函数库 无
php_ingres.dll Ingres II 函数库 需要:Ingres II 库
php_interbase.dll InterBase functions 需要:gds32.dll(已附带)
php_java.dll Java 函数库 PHP <= 4.0.6 需要:jvm.dll(已附带)
php_ldap.dll LDAP 函数库 PHP <= 4.2.0 需要 libsasl.dll(已附带),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附带)
php_mbstring.dll 多字节字符串函数库 无
php_mcrypt.dll Mcrypt 加密函数库 需要:libmcrypt.dll
php_mhash.dll Mhash 函数库 PHP >= 4.3.0 需要:libmhash.dll(已附带)
php_mime_magic.dll Mimetype 函数库 需要:magic.mime(已附带)
php_ming.dll Ming 函数库(Flash) 无
php_msql.dll mSQL 函数库 需要:msql.dll(已附带)
php_mssql.dll MSSQL 函数库 需要:ntwdblib.dll(已附带)
php_mysql.dll MySQL 函数库 PHP >= 5.0.0 需要 libmysql.dll(已附带)
php_mysqli.dll MySQLi 函数库 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附带)
php_oci8.dll Oracle 8 函数库 需要:Oracle 8.1+ 客户端库
php_openssl.dll OpenSSL 函数库 需要:libeay32.dll(已附带)
php_oracle.dll Oracle 函数库 需要:Oracle 7 客户端库
php_overload.dll 对象重载函数库 自 PHP 4.3.0 起内置
php_pdf.dll PDF 函数库 无
php_pgsql.dll PostgreSQL 函数库 无
php_printer.dll 打印机函数库 无
php_shmop.dll 共享内存函数库 无
php_snmp.dll SNMP 函数库 仅用于 Windows NT!
php_soap.dll SOAP 函数库 PHP >= 5.0.0
php_sockets.dll Socket 函数库 无
php_sybase_ct.dll Sybase 函数库 需要:Sybase 客户端库
php_tidy.dll Tidy 函数库 PHP >= 5.0.0
php_tokenizer.dll Tokenizer 函数库 自 PHP 4.3.0 起内置
php_w32api.dll W32api 函数库 无
php_xmlrpc.dll XML-RPC 函数库 PHP >= 4.2.1 需要 iconv.dll(已附带)
php_xslt.dll XSLT 函数库 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附带)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附带)。
php_yaz.dll YAZ 函数库 需要:yaz.dll(已附带)
php_zip.dll Zip 文件函数库 只读访问
php_zlib.dll ZLib 压缩函数库 自 PHP 4.3.0 起内置

㈥ 我想用php执行shell语句:sudo curl --request POST --data-

PHP中有这种函数可以执行shell的函数,如system(), exec(), shell_exec()等等,给你个链接,你可以自己去看 http://php.net/manual/zh/function.system.php
至于curl , http://php.net/manual/zh/book.curl.php

㈦ php扩展用vc++写一个加密函数

php_mcrypt
是PHP本身的加密库
他里面已经有了DES等加密算法
下面的网址是PHP手册,你可以自己研究一下
http://cn.php.net/mcrypt

热点内容
eclipse查看jar包源码 发布:2025-02-12 23:59:35 浏览:972
电脑主机服务器维修 发布:2025-02-12 23:59:26 浏览:301
sqlserver标识 发布:2025-02-12 23:51:33 浏览:462
安卓怎么玩地牢猎人 发布:2025-02-12 23:50:25 浏览:943
思乡脚本 发布:2025-02-12 23:43:32 浏览:439
java的job 发布:2025-02-12 23:38:43 浏览:892
我的世界服务器授权指令 发布:2025-02-12 23:30:13 浏览:596
电脑服务器号在哪里找 发布:2025-02-12 23:22:29 浏览:12
linux查看系统是32位 发布:2025-02-12 23:17:29 浏览:989
从数据库中随机取数据库数据 发布:2025-02-12 23:17:25 浏览:878