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 是这样的 "seeing" 行:

000000124325424Productname Type Price Weight Unit Unitcode

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

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

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

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

您可以在浏览器中使用“查看源代码...”解决此类问题。

编辑问题后,我突然想到您可能正在处理制表符分隔的字符串 \t。无论哪种方式,在您尝试使用 substr() :

之前清理每个字符串
$s = preg_replace('/\s+/', ' ', $s);

这将删除多个空格 " "=>" "、制表符 \t 甚至换行符。


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

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

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