小编bwo*_*ebi的帖子

匹配正确添加两个二进制数与PCRE正则表达式

是否有可能匹配形式的添加(?<a>[01]+)\s*\+\s*(?<b>[01]+)\s*=\s*(?<c>[01]+),在哪里a + b == c(如二进制加法)必须保持?

这些应匹配:

0 + 0 = 0
0 + 1 = 1
1 + 10 = 11
10 + 111 = 1001
001 + 010 = 0011
1111 + 1 = 10000
1111 + 10 = 10010
Run Code Online (Sandbox Code Playgroud)

这些不符合:

0 + 0 = 10
1 + 1 = 0
111 + 1 = 000
1 + 111 = 000
1010 + 110 = 1000
110 + 1010 = 1000
Run Code Online (Sandbox Code Playgroud)

regex pcre

51
推荐指数
1
解决办法
1409
查看次数

如何使用特定于用户的密钥创建双向编码/解码方法 - PHP?

我需要两个函数/方法,一个用于编码,一个用于解码.这不是用于存储密码.每个用户都有一个特定的密钥/盐来编码数据.

这就是我希望它的工作方式:

function encode($str, $key) {
    // something fancy
}

function decode($str, $key) {
    // something fancy
}

$key = $logged_in_user->get_key();
$plain = 'abc abc 123 123';
$encoded_data = encode($plain, $key);
// some_fancy_encrypted_data_that_is_really_cooooool
$decoded_data = decode($encoded_data, $key);
// abc abc 123 123
Run Code Online (Sandbox Code Playgroud)

另一件事是每次我使用这个函数时,每次我使用encode具有相同用户密钥的函数时,它都需要返回相同的东西.

我该怎么办?

php encryption encode salt

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

JQuery $ .post跨域和凭据

我编写了一个使用$.postJQuery调用大量调用的Web应用程序.现在我想发送withCredentials: true它以保持会话活着,看起来像这样$.ajax(并且也像这样):

$.ajax({
            type: 'post',
            url: 'http://example.com/server/api.php',
            crossDomain: true,
            dataType: "json",
            xhrFields: {
                withCredentials: true
            },
            data: {
                username : 'test',
                password : 'test'
            },
            success: function (d) {
                $('body').html(d.status);
            }
        });
Run Code Online (Sandbox Code Playgroud)

这是因为我现在想将PHP文件上传到我的服务器并使用Cordova导出客户端.(withCredentials: true仅包括在我的本地主机服务器上进行测试)我可以将其打包到$.post呼叫中还是需要更换所有呼叫?(我会写一个类似于$ .post的新函数)

ajax jquery post xmlhttprequest

12
推荐指数
1
解决办法
3万
查看次数

无法将char*[2]类型的数组地址传递给char***函数

我的XCode(默认编译器应该是clang?)向我展示了这段代码的警告:

Incompatible pointer types passing 'char *(*)[2]' to parameter of type 'char ***' (当调用func时)

void func (char ***arrayref, register size_t size) {
    /// ...
}

int main()
{
    char *array[2] = {"string", "value"};
    func(&array, 2);
}
Run Code Online (Sandbox Code Playgroud)

而这段代码没问题(=没有警告):

void func (char **arrayref, register size_t size) {
    /// ...
}

int main()
{
    char *array[2] = {"string", "value"};
    func(array, 2);
}
Run Code Online (Sandbox Code Playgroud)

虽然这消除了警告

func((char***)&array, 2);
Run Code Online (Sandbox Code Playgroud)

我仍然不知道为什么第一个发出警告,而后者不发出警告.

另外,当第一个出现问题时,我也希望第一个发出警告,如:

Incompatible pointer types passing 'char *[2]' to parameter of type 'char **'

c arrays pointers parameter-passing pass-by-reference

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

PHP通过使用使用http请求的模块来防止超时

我使用PHP并且需要运行10个任务.他们中的每一个都不应该超时,但所有10个任务可能会在一起.

使用带有新http请求的模块化方法是一个很好的解决方案吗?

像这样的东西:

http://example.com/some/module/fetch
http://example.com/some/module/parse
http://example.com/some/module/save
Run Code Online (Sandbox Code Playgroud)

也许这些网址各自执行一项任务.如果成功,请执行该任务的下一个任务.一种连锁反应.一条路径调用下一条路径(使用curl).

优点和缺点?这是一个好方法吗?如果没有,什么是更好的选择?

php timeout httprequest

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

删除不在子树中或原始存储库中的提交

我实际上有两个存储库:

  • main
  • external

main仓库是一段时间后,将合并后external/main的目录(如子树).现在我想将所做的更改迁移external/mainmain存储库,但只有这些提交而没有其他无关的提交external/<anything-else>.

我实际上尝试过经典:

git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter main -- --all
Run Code Online (Sandbox Code Playgroud)

但是这也删除了对初始main存储库所做的所有提交,只留下了在externalgit存储库中创建的提交.


那么:如何只保留提交:

a)制作初始main存储库

b)制作external(external/main)的子树


当我尝试时git pull -s subtree ../external,提交都被合并,包括在子树中没有改变任何内容的提交.我想只有实际改变子树中某些内容的提交,并且还只有来自子树的文件信息.

git git-filter-branch git-subtree git-rewrite-history

7
推荐指数
1
解决办法
574
查看次数

如何管理相互递归,保留关联性规则?

总体问题是:

怎么我的语法有看起来像允许任意嵌套expr := '(' expr ')' => expr | expr_without_short_closureexpr_without_short_closure := [expr_without_short_closure => expr] | yield expr_without_short_closure => expr | expr_without_short_closure 'or' expr | '(' expr ')',同时还允许低优先级左结合运营商如expr_without_short_closure 'or' expr


目前LALR(1)bison语法的结构如下(呈现实际语法文件的自包含部分,简化一点):

%left ','
%left T_LOGICAL_OR /* or */
%right T_YIELD
%right T_DOUBLE_ARROW /* => */
%left '+'

expr: /* entry point as well */
                expr_without_short_closure %prec ',' { $$ = $1; }
        |       expr_with_short_closure { $$ = $1; }
;

expr_with_short_closure:
                short_closure
        |       T_YIELD expr_without_short_closure …
Run Code Online (Sandbox Code Playgroud)

yacc bison

7
推荐指数
1
解决办法
100
查看次数

如何在php中连接两个多维数组

如何在php中加入两个多维数组?我有两个多维数组A和B.我需要连接A和B以形成一个新的数组C,如下所示

$A = array( 
array("a1"=>1,"b1"=>2,"c1"=>"A"), 
array("a1"=>1,"b1"=>16,"c1"=>"Z"), 
array("a1"=>3,"b1"=>8,"c1"=>"A")); 

$B = array( 
array("a2"=>1,"b2"=>2,"b2"=>"A"), 
array("a2"=>1,"b2"=>16,"b2"=>"G"), 
array("a2"=>3,"b2"=>8,"b2"=>"A")); 
Run Code Online (Sandbox Code Playgroud)

//加入A和B以形成C.

$C=array( 
array("a1"=>1,"b1"=>2,"c1"=>"A"), 
array("a1"=>1,"b1"=>16,"c1"=>"Z"), 
array("a1"=>3,"b1"=>8,"c1"=>"A"),
array("a2"=>1,"b2"=>2,"b2"=>"A"), 
array("a2"=>1,"b2"=>16,"b2"=>"G"), 
array("a2"=>3,"b2"=>8,"b2"=>"A"));
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

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

php数组查找重复项,将它们汇总并删除重复项

我有一个数组:

Array 
(
[0] => Array
    (
        [setid] => 2
        [income] => 100
    )

[1] => Array
    (
        [setid] => 2
        [income] => 120
    )

[2] => Array
    (
        [setid] => 3
        [income] => 700
    )
)
Run Code Online (Sandbox Code Playgroud)

我需要找到具有相同setid的条目,将它们的收入加起来并删除重复的条目-最后,它应该看起来像这样:

Array
(
[0] => Array
    (
        [setid] => 2
        [income] => 220
    )

[1] => Array
    (
        [setid] => 3
        [income] => 700
    )
)
Run Code Online (Sandbox Code Playgroud)

有人知道我的问题有解决方案吗?还是我必须走很长的路并手动执行每个步骤?

谢谢和问候

php arrays multidimensional-array

5
推荐指数
1
解决办法
2233
查看次数

在不使用ReflectionFunction-> invoke()的对象上下文中时使用$ this

class someClass {
    private $success = "success\n";
    function getReflection() {
        return new ReflectionFunction(function() {
            print $this->success;
        });
     }
}
$reflection = (new someClass)->getReflection();
$reflection->invoke();
Run Code Online (Sandbox Code Playgroud)

当我跑这个时,我得到一个

Fatal error: Using $this when not in object context in Command line code on line 5
Run Code Online (Sandbox Code Playgroud)

这里发生了什么事?为什么$this没有在那里定义......?

因为我在方法中的Closure中,$this通常应该定义.是的,我的版本比PHP 5.4更新.

我该如何解决?

php reflection this fatal-error

4
推荐指数
1
解决办法
282
查看次数