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

时间:2015-10-03 16:46:44

标签: php isam

我正在尝试从Isam文件中分离数据,使用fgets和substr逐行循环,从正确的行位置获取正确的数据。

来源数据:

000000124325424Productname    Type    Price    Weight    Unit    Unitcode
000000124325324Productname2   Type2   Price2   Weight2   Unit2   Unitcode2

问题是substr不会重新定位数据之间的额外空间,因此数据的位置会改变每一行。

Substr是"看到"像这样的行:

000000124325424Productname Type Price Weight Unit Unitcode

有没有办法保留项目之间的空格?

2 个答案:

答案 0 :(得分:2)

在编辑问题后,它会让我觉得您可能正在处理制表符分隔的字符串\t。无论哪种方式,在您尝试使用substr()之前清理每个字符串:

$s = preg_replace('/\s+/', ' ', $s);

这将删除多个空格" " => " ",标签\t甚至换行符。

也许你可以在消毒后找到explode()作为更好的方法:

explode(" ", str_replace("\t", " ", $line1))[0] 

永远是第一项,即没有额外空格的产品代码。

答案 1 :(得分:1)

当您在网页中显示文字时,网络浏览器不会显示多个空格。尝试将文本包装在预格式化标签中,如此

<pre>000000124325324Productname2   Type2   Price2   Weight2   Unit2   Unitcode2</pre>

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

您可以使用View Source解决此类问题...在浏览器中。