有熟悉linux下php扩展开发的吗?几个问题想请教一下各位:

seai 2010-10-12 12:02:39
1、字符编码问题:
有自定义函数
PHP_FUNCTION(myfun)
{
char *arg = NULL;
char *type = NULL;
int arg_len,type_len;
char *str;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &arg, &arg_len, &type, &type_len) == FAILURE) {
return;
}
if(strcmp(arg,type)==0)
strcpy(str,"1");
else
strcpy(str,"2");
RETURN_STRINGL(str, 1, 0);
}
然后在php中调用
<?php
var_dump(myfun("123","456"));
?>
结果显示乱码

2、在扩展模块的编写中,如何调用其他扩展?
比如,想在其中掉用php的preg_replace函数(这个函数是由另外的扩展实现的没错吧)。
...全文
241 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
seai 2010-10-19
  • 打赏
  • 举报
回复
顶到有人回
seai 2010-10-12
  • 打赏
  • 举报
回复
重声4个问题,请大牛解答

1、字符编码问题:使用RETURN_STRING("abc",0);返回值在php中获得到乱码
2、在扩展模块的编写中,如何调用其他扩展:比如在自己的扩展中调用preg_replace()函数
3、spprintf()函数用法:
4、如何定义常理给PHP使用:类似htmlspecialchars()函数和他可以使用的常量ENT_QUOTES
seai 2010-10-12
  • 打赏
  • 举报
回复
补充一个问题:

3、spprintf()函数用法是怎样的,在诺大的google上都收不到它的用法唉!
kaifadi 2010-10-12
  • 打赏
  • 举报
回复
帮顶,我也很想了解!
seai 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 luciferstar 的回复:]

sprintf,查C语言的资料即可。
spprintf,没见过。是PHP自己的?
[/Quote]


应该是php的东东。和sprintf不同的。找到一段源码:

#ifndef SPPRINTF_H
#define SPPRINTF_H

#include "snprintf.h"

BEGIN_EXTERN_C()
PHPAPI int spprintf( char **pbuf, size_t max_len, const char *format, ...) PHP_ATTRIBUTE_FORMAT(printf, 3, 4);

PHPAPI int vspprintf(char **pbuf, size_t max_len, const char *format, va_list ap) PHP_ATTRIBUTE_FORMAT(printf, 3, 0);
END_EXTERN_C()

#endif /* SNPRINTF_H */
seai 2010-10-12
  • 打赏
  • 举报
回复
5、如何定义可选参数,使用"s|s"这样的写法接受参数,会要求至少一个参数,但我希望无参数,能调用。
LuciferStar 2010-10-12
  • 打赏
  • 举报
回复
sprintf,查C语言的资料即可。
spprintf,没见过。是PHP自己的?

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧