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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 使用sscanf读取固定长度的字符串脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试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的新输入.

根据http://PHP.net/manual/en/function.sscanf.PHP评论,这应该工作:

$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读取固定长度的字符串全部内容,希望文章能够帮你解决php – 使用sscanf读取固定长度的字符串所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。