PHP:使用substr时删除额外的空格


PHP: Extra spaces removed when using substr

我正试图从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>

然后浏览器将呈现所有显示的空格。

您可以使用查看源代码…来解决此类问题。