小编Pau*_*xon的帖子

如何在C++中开始编写PHP5扩展

我正在编写PHP5扩展,虽然我可以用C语言编写,但使用C++并利用STL和Boost更容易.

麻烦的是,我看过的教程只涉及C,我正在寻找一个使用C++的基本例子

这是我到目前为止所尝试的:

config.m4中

[ --enable-hello   Enable Hello World support])

if test "$PHP_HELLO" = "yes"; then
  AC_DEFINE(HAVE_HELLO, 1, [Whether you have Hello World])
  PHP_NEW_EXTENSION(hello, hello.cpp, $ext_shared)
fi
Run Code Online (Sandbox Code Playgroud)

php_hello.h

注意我试图将PHP接口的位声明为extern"C"

#ifndef PHP_HELLO_H
#define PHP_HELLO_H 1


extern "C" {

#define PHP_HELLO_WORLD_VERSION "1.0"
#define PHP_HELLO_WORLD_EXTNAME "hello"

PHP_FUNCTION(hello_world);

extern zend_module_entry hello_module_entry;
#define phpext_hello_ptr &hello_module_entry

}
#endif
Run Code Online (Sandbox Code Playgroud)

HELLO.CPP

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_hello.h"

static function_entry hello_functions[] = {
    PHP_FE(hello_world, NULL)

    {NULL, NULL, NULL}
};

zend_module_entry hello_module_entry = {
#if …
Run Code Online (Sandbox Code Playgroud)

php c++ gcc php-extension

20
推荐指数
1
解决办法
9888
查看次数

按特定顺序对PHP中的对象数组进行排序

我在PHP中有两个数组.第一个数组($ author_array)由特定顺序的user_ids组成,如下所示:(8,1,6)

第二个数组($ user_results)由一组对象组成,如下所示:

Array
(
    [0] => stdClass Object
        (
            [ID] => 1
            [user_login] => user1
        )
    [1] => stdClass Object
        (
            [ID] => 6
            [user_login] => user6
        )
    [2] => stdClass Object
        (
            [ID] => 8
            [user_login] => user8
        )
)
Run Code Online (Sandbox Code Playgroud)

我想"排序"第二个数组,使其按此顺序排列,它与第一个数组(8,1,6)中的值的顺序相匹配.所以它看起来像这样:

Array
(
    [0] => stdClass Object
        (
            [ID] => 8
            [user_login] => user8
        )
    [1] => stdClass Object
        (
            [ID] => 1
            [user_login] => user1
        )
    [2] => stdClass Object
        (
            [ID] => 6
            [user_login] => …
Run Code Online (Sandbox Code Playgroud)

php arrays object

14
推荐指数
1
解决办法
2万
查看次数

如何检查symfony2表单中是否存在字段?

使用本手册,我在表单中添加了动态字段.现在,我如何在模板中检查此字段的存在?

{{ form_start(form) }}
  {{ form_errors(form) }}

  {% if ??? %}     <---------------------------
    {{ form_row(form.myDynamicField) }}
  {% endif %}
{{ form_end(form) }}
Run Code Online (Sandbox Code Playgroud)

php forms field symfony

12
推荐指数
2
解决办法
8757
查看次数

PHP:在1行还是多行连接更好?或者有区别吗?

是否存在差异,或者是否优于以下其他方面:

$var = '';
...
$var .= 'blah blah';
$var .= $var2;
$var .= 'blah blah';
Run Code Online (Sandbox Code Playgroud)

要么

$var = '';
...
$var .= 'blah blah' . $var2 . 'blah blah';
Run Code Online (Sandbox Code Playgroud)

是否存在速度差异或是否有理由选择其中一个?

php concatenation

10
推荐指数
3
解决办法
2万
查看次数

YouTube如何在对象标记中没有classid的情况下嵌入工作?

从YouTube嵌入功能获得的典型代码片段如下所示:

<object width="660" height="405">
  <param name="movie" value="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&amp;hl=en_GB&amp;border=1"></param>
  <param name="allowFullScreen" value="true"></param>
  <param name="allowscriptaccess" value="always"></param>
  <embed src="http://www.youtube.com/v/NWHfY_lvKIQ?fs=1&amp;hl=en_GB&amp;border=1"
         type="application/x-shockwave-flash" 
         allowscriptaccess="always" 
         allowfullscreen="true" 
         width="660" 
         height="405">
  </embed>
</object>
Run Code Online (Sandbox Code Playgroud)

现在,该<embed>元素有一个type属性告诉浏览器它嵌入了一个flash文件,但对于使用该<object>标记的浏览器,似乎没有可用的信息给浏览器!

为什么这里不需要classid或codebase属性?我能想到的唯一选择是:

  • IE假定在没有其他信息的情况下进行Flash嵌入
  • 或者,IE从<embed>标签中读取此信息

我找不到文档来验证任何一个选项.而且我很好奇!

编辑:在这里找到了一个很好的Flash嵌入技术比较.仍然想知道它是如何工作的......

embed youtube flash activex

10
推荐指数
1
解决办法
2829
查看次数

需要左值

"Lvalue required"的错误信息实际上是什么意思?

c lvalue

10
推荐指数
2
解决办法
3万
查看次数

是否可以将多行和表中的字符串连接到一个结果列中?

我正在尝试编写一个MySQL查询,该查询从表"projects"中检索一条与表"tags"具有一对多关系的记录.我的应用程序使用4个表来执行此操作:

Projects - the projects table
Entities - entity table; references several application resources
Tags - tags table
Tag_entity - links tags to entities
Run Code Online (Sandbox Code Playgroud)

是否可以以表格"标签"中的多个值连接成一个结果列的方式编写查询?我更喜欢不使用子查询这样做.

表澄清:

                                      -------------
                                     | Tag_Entity  |
 -------------       ----------      | ----------- |      -------
| Projects    |     | Entities |     | - id        |     | Tags  |
| ----------- |     | -------- |     | - tag_id    |     | ----- |
| - id        | --> | - id     | --> | - entity_id | --> | id    | …
Run Code Online (Sandbox Code Playgroud)

mysql select database-design join

9
推荐指数
1
解决办法
4130
查看次数

使用登录cookie的相对安全的方法是什么?

我想知道最安全的cookie登录方式是什么?如果您只是将通行证(使用salt加密)和用户名存储在cookie中并根据用户表进行验证,则潜在的攻击者可以窃取cookie并登录.人们通常不会检查'上次在线'.

那么"记住我的饼干"有更好的方法吗?IP不是一个好选择,是吗?(有些机器一直在更换IP).

php cookies autologin

9
推荐指数
3
解决办法
2万
查看次数

访问iPhone音乐库

我正计划开发一种从音乐库中加载音乐的DJ应用程序.当然,它会在应用程序商店中销售.

所以问题是,它是否可以在AppStore中分发?

我发现它至少在6个月前被禁止了......但我希望现在有可能......

iphone

8
推荐指数
2
解决办法
1万
查看次数

如何通过Jenkins构建状态提醒Skype聊天室?

我们公司使用Skype进行通信,我希望能够在Jenkins构建失败时(以及当它恢复时)向Skype聊天室发送警报.

我怎样才能做到这一点?

api skype jenkins

8
推荐指数
1
解决办法
8530
查看次数