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]
永远是第一项,即没有多余空格的产品代码。
我正在尝试从 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]
永远是第一项,即没有多余空格的产品代码。