小编Tim*_*Tim的帖子

在同一个数据库中复制集合的最快方法是什么?

我想在同一个数据库中复制一个集合,并给它一个不同的名称 - 基本上是拍摄快照.

最好的方法是什么?有命令,还是我必须依次复制每条记录?

我知道该cloneCollection命令,但它似乎只是复制到另一台服务器.

我也知道mongoimport并且mongoexport,但是当我通过PHP这样做时,我宁愿不打电话给shell.

mongodb

62
推荐指数
3
解决办法
5万
查看次数

什么是在数据库中存储差异最紧凑的方法?

我想实现与维基媒体的修订历史类似的东西?什么是最好的PHP函数/库/扩展/算法?

我希望差异尽可能紧凑,但我很高兴只限于显示每个修订版本与其兄弟版本之间的差异,并且只能一次回滚一个修订版本.

在某些情况下,只有少数几个字符可能会改变,而在其他情况下,整个字符串可能会发生变化,所以我很想知道某些技术对于小变化是否比对大变量更好,如果在某些情况下它更有效存储整个副本.

使用像Git或SVN这样的东西支持整个系统似乎有点极端,我真的不想将文件存储在磁盘上.

php mysql version-control

6
推荐指数
1
解决办法
1370
查看次数

如何在超时后断开ZeroMQ套接字?

我用PHP非常成功地使用ZeroMQ并编写了一个作业服务器.我有一个管理脚本,它检查服务器的运行状况,并执行诸如ping超时之类的操作.

当服务器启动时,一切都运行良好,但是当它停机时(并且ZMQPoll按预期超时)我的脚本会按照预期执行 - 但脚本永远不会终止.

我已经尝试清理和取消设置所有套接字变量等.但即使调用exit()PHP脚本也会挂起.

似乎没有套接字disconnect()方法,所以如何告诉PHP套接字已死,我不希望它挂起?

这是我的管理脚本下面的一段代码 -

        // ...
        // waiting for dead server on zmqsock to respond after sending a message
        // 
        $poll = new ZMQPoll;
        $poll->add( $this->zmqsock, ZMQ::POLL_IN );
        $readable = $writeable = array();
        $poll->poll( $readable, $writeable, $timeout * 1000 );
        if( $errors = $poll->getLastErrors() ) {
            foreach ( $errors as $err ) {
                throw new Exception($err);
            }
        }
        if( ! $readable ){
             // clean up everything, raise errors, etc..
             $poll->clear(); …
Run Code Online (Sandbox Code Playgroud)

php zeromq

6
推荐指数
1
解决办法
3337
查看次数

导出多个字符串以进行本地化

我已经使用这里引用.stringsdict格式定义了多个字符串.

我正在使用XCode的"Editor> Export for Localization .."选项来创建适用于翻译器和翻译软件的XLIFF文件,但是定义的字符串Localizable.stringsdict不会导出到XLIFF文件.

如何将这些复数形式导出为XLIFF格式 - 将它们翻译 - 然后将它们导回到项目中?

我知道XLIFF没有本机复数标记,但格式是可扩展的,所以我不明白为什么它不可能.

xcode localization ios xliff

6
推荐指数
1
解决办法
317
查看次数

是否可以测试两个sha2哈希是否来自同一个纯文本?

以下是使用PHP的crypt函数生成的空字符串的SHA256哈希值.

$5$fooooooooooooooo$Y6IVN.cYkABQ4h8dCR0zL/rJoRx09pwMoGaYST9HqDD
$5$baaaaaaaaaaaaaar$C84IKQdPMG8qvnnckGZsyBJWKHuaSD0tqcmyueHI0GA
Run Code Online (Sandbox Code Playgroud)

每个都是在哈希中存在不同的16字节盐的情况下生成的.有没有办法只是测试它们是同一个东西的哈希,而不知道那是什么东西?

php hash cryptography

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

如何在多个后端之间共享健康检查?

我有两个后端,以便在我的应用程序中维护两组规则。一种用于通过浏览器访问的主网站(cookied 会话),另一种用于 API(无状态并通过 API 密钥进行身份验证)。

配置看起来像这样(大大简化)。

defaults
    option httpchk HEAD /ping

backend web
    cookie _srv insert indirect
    server srv1 10.0.0.1:80 cookie srv1 check inter 10s
    server srv2 10.0.0.2:80 cookie srv2 check inter 10s

backend api
    stick-table type string len 50 expire 1d store http_req_cnt
    stick on url_param(key)
    server srv1 10.0.0.1:80 check inter 10s
    server srv2 10.0.0.2:80 check inter 10s
Run Code Online (Sandbox Code Playgroud)

如图所示,两个后端使用相同的服务器,只是 API 不需要设置 cookie。有(或将会有)更多的逻辑需要分离,例如速率限制规则。

我的问题是如何避免重复健康检查?对每台服务器对同一端点执行两次 ping 操作会浪费资源。我想让web后端进行健康检查,并将api后端标记为启动或关闭。这可能吗?或者也许有更好的方法来分离后端但保留通用功能。

high-availability haproxy

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

为什么 mbstring 无法将 latin1 字符检测为 cp1252?

ASCII 字符被检测为有效的 latin1 ,但不是cp1252

\n\n
mb_detect_encoding("a",["ISO-8859-1"],true);   // "ISO-8859-1"  \nmb_detect_encoding("a",["Windows-1252"],true); // false\n
Run Code Online (Sandbox Code Playgroud)\n\n

80-9F 范围内的附加字符可检测为:

\n\n
mb_detect_encoding("\\x80",["ISO-8859-1"],true);   // "ISO-8859-1"  \nmb_detect_encoding("\\x80",["Windows-1252"],true); // "Windows-1252"\n
Run Code Online (Sandbox Code Playgroud)\n\n

但常见的扩展字符则不然。取\xc3\xa9处的字符0xE9。PHP 将其检测为 ISO,但不是超集:

\n\n
mb_detect_encoding("\\xE9",["ISO-8859-1"],true);   // "ISO-8859-1"  \nmb_detect_encoding("\\xE9",["Windows-1252"],true); // false\n
Run Code Online (Sandbox Code Playgroud)\n\n

将附加字符转换为 UTF-8 需要使用 Windows 字符集,其工作原理如下:

\n\n
mb_convert_encoding("a\\xE9\\x80","UTF-8","Windows-1252"); // a\xc3\xa9\xe2\x82\xac\nmb_convert_encoding("a\\xE9\\x80","UTF-8","ISO-8859-1");   // a\xc3\xa9<control>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以忍受这种限制(检测为 ISO,转换为 Windows),但我很想知道为什么会出现这种情况。

\n

php character-encoding

5
推荐指数
0
解决办法
465
查看次数

如何获得min-height CSS属性?

据我所知,DOM元素的CSS属性style是驼峰式的,这样min-height就可以了element.style.minHeight,但是在我的例子中,style属性是空的,但是jQuery的抽象正确得到它.

// element with css: #test{ min-height: 100px; }
var el = document.getElementById('test');

console.log( el.style.minHeight );
// ""

console.log( $(el).css('min-height') );
// "100px"
Run Code Online (Sandbox Code Playgroud)

请看小提琴这个在行动.

jQuery正在做什么来提取我没有做的正确的样式属性?

有趣的是,直接在html元素上添加样式属性确实有效.

javascript jquery dom styles

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