小编aag*_*aag的帖子

将php字符串拆分成不同长度的块

我正在寻找将字符串拆分为数组的方法str_split(),其中块的大小各不相同.

我可以通过使用一堆循环遍历字符串来做到这一点substr(),但这看起来既不优雅也不高效.是否有一个函数接受一个字符串和一个数组,如(1, 18, 32, 41, 108, 125, 137, 152, 161),并产生一个适当切碎的字符串片数组?

爆炸是不合适的,因为块是由不同数量的空格分隔的.

php arrays string split

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

当n <2时,postgres STDDEV聚合行为

我的Postgres查询从一堆传感器读数计算统计聚合:

SELECT to_char(ipstimestamp, 'YYYYMMDDHH24') As row_name, 
to_char(ipstimestamp, 'FMDD mon FMHH24h') As hour_row_name, 
varid As category, 

(AVG(ipsvalue)::NUMERIC(5,2)) ||', ' || 
(MAX(ipsvalue)::NUMERIC(5,2))::TEXT  ||', ' || 
(MIN(ipsvalue)::NUMERIC(5,2))::TEXT  ||', ' || 
(STDDEV(ipsvalue)::NUMERIC(5,2))::TEXT  ||', ' As StatisticsValue 

FROM loggingdb_ips_integer As log 
JOIN ipsobjects_with_parent ips ON log.varid = ips.objectid 
AND (ipstimestamp > (now()- '2 days'::interval)) 
GROUP BY row_name, hour_row_name, category;
Run Code Online (Sandbox Code Playgroud)

只要我有> 1 ipsvalue/hour,这就可以正常工作.但是,如果每小时COUNT(ipsvalue)<2,则StatisticsValue返回NULL而没有任何Postgres错误.

如果我注释掉STTDEV,如下所示:

(AVG(ipsvalue)::NUMERIC(5,2)) ||', ' || 
(MAX(ipsvalue)::NUMERIC(5,2))::TEXT  ||', ' || 
(MIN(ipsvalue)::NUMERIC(5,2))::TEXT  ||', ' As value 
Run Code Online (Sandbox Code Playgroud)

然后正确计算所有三个统计数据.因此,我得出结论,非法STDDEV会导致整个查询失效.我宁愿让非法的STDDEV返回0.我试图COALESCE STDDEV线,但无济于事.可以做些什么?

postgresql statistics null aggregate standard-deviation

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

Nginx map指令

我试图从nginx日志中排除*.ong的请求.以下地图有效:

map_hash_bucket_size 128;
map $request $loggable {
    "GET /heizungskeller/graphs/ips_var_48757-day.png HTTP/1.1" 0;
    default 1;
    }
Run Code Online (Sandbox Code Playgroud)

但是通配符不会:

map_hash_bucket_size 128;
map $request $loggable {
    "*.png HTTP/1.1" 0;
    default 1;
    }
Run Code Online (Sandbox Code Playgroud)

这是为什么?

nginx

0
推荐指数
1
解决办法
3938
查看次数

Visual Basic for Applications 中“或”的管道符号

我广泛使用 MS Word 的语音转文本功能,但它经常将我的逗号解释为“注释”或“常见”。我要求 ChatGPT 编写一个修复宏(见下文),它建议使用:.Text = "comment|common"。我喜欢使用管道符号来提供逻辑“OR”的想法,但它似乎不适用于 MS Word。是ChatGPT的错还是微软的错?无论如何,有没有办法将布尔逻辑设计到 VBA .Find 语句中?

Dim myRange As Range
Set myRange = ActiveDocument.Content
With myRange.Find
    .Text = "comment|common"
    .Replacement.Text = ","
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = True
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
myRange.Find.Execute Replace:=wdReplaceAll
End Sub
Run Code Online (Sandbox Code Playgroud)

vba ms-word

0
推荐指数
1
解决办法
146
查看次数