gpt4 book ai didi

php - 使用 sscanf 读取固定长度的字符串

转载 作者:可可西里 更新时间:2023-10-31 23:39:32 25 4
gpt4 key购买 nike

我正在尝试 sscanf 读取一堆连续的固定长度字符串,但效果不是很好。我可以这样打印一个固定长度的字符串:

sprintf('%.5s', 'aaaaabbbbb');

但如果我尝试使用 %.5s 读取固定长度的字符串(例如,输入字符串的前 5 个字节),它就不起作用。例如。

var_dump(sscanf('aaaaabbbbb', '%.5s'));

如果我这样做,var_dump 返回 NULL 并且我收到以下警告:

Warning: sscanf(): Bad scan conversion character "."

除了 %.5s 之外,我还尝试了 %5s 但这也没有达到预期效果。例如。

var_dump(sscanf('aa aabbbbb', '%5s'));

返回这个:

array(1) {
[0]=>
string(2) "aa"
}

我希望它返回的是:

array(1) {
[0]=>
string(5) "aa aa"
}

有什么想法吗?

最佳答案

问题是任何空格字符都被视为使用 %s 的新输入。

根据 sscanf评论,这应该有效:

$result = sscanf("  Vendor: My Vendo Model: Super Model Foo  Rev: 1234", 
' Vendor: %8[ -~] Model: %16[ -~] Rev: %4c',
$vendor, $model, $rev);

所以,在你的情况下:

var_dump(sscanf('aa aabbbbb', '%5[ -~]'));

它在 PHP 5.2.10 上运行良好。

关于php - 使用 sscanf 读取固定长度的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30573630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com