我正试图从Isam文件中分离数据,使用fgets逐行循环,并使用substr从行的正确位置获得正确的数据。
源数据:000000124325424Productname Type Price Weight Unit Unitcode
000000124325324Productname2 Type2 Price2 Weight2 Unit2 Unitcode2
问题是substr不能识别数据之间的额外空格,因此数据的位置每行都在变化。
Substr是"看到"这样的行:
000000124325424Productname Type Price Weight Unit Unitcode
是否有办法保留项目之间的空格?
编辑问题后,它击中我,你可能正在处理一个制表符分隔的字符串't
。无论哪种方式,在您尝试使用substr()
:
$s = preg_replace('/'s+/', ' ', $s);
这将剥离多个空白" "
=> " "
,制表符't
甚至换行符。
也许你可以发现explode()
是消毒后更好的方法:
explode(" ", str_replace("'t", " ", $line1))[0]
总是第一项,即产品代码,没有额外的空格。
当你在网页中显示文本时,浏览器不会像这样显示多个空格。尝试用预格式化标签包装文本,如
<pre>000000124325324Productname2 Type2 Price2 Weight2 Unit2 Unitcode2</pre>
然后浏览器将呈现所有显示的空格。
您可以使用查看源代码…来解决此类问题。