PHP-无法从字符串中删除空白

PHP-无法从字符串中删除空白,php,csv,whitespace,Php,Csv,Whitespace,我有一段代码,从CSV文件中读取值,所有这些都是有效的,然后每个单独的记录都被验证,并在对外部源的API调用中使用,所有这些都是有效的 今天我上传了一个CSV文件,当我打开它时,它看起来在CSV中每个条目的末尾有3个空格,这导致API调用失败 我尝试过使用trim()但它没有任何作用,我也尝试过使用preg_replace('/^((?=^)(\s*))|((\s*)(?>$)/si','$pValue),这也没有任何影响 我在Notepad++中打开了CSV文件,并使其能够显示所有符号,明显有

我有一段代码,从CSV文件中读取值,所有这些都是有效的,然后每个单独的记录都被验证,并在对外部源的API调用中使用,所有这些都是有效的

今天我上传了一个CSV文件,当我打开它时,它看起来在CSV中每个条目的末尾有3个空格,这导致API调用失败

我尝试过使用
trim()
但它没有任何作用,我也尝试过使用
preg_replace('/^((?=^)(\s*))|((\s*)(?>$)/si','$pValue)
,这也没有任何影响

我在Notepad++中打开了CSV文件,并使其能够显示所有符号,明显有3个空格和
CR
LF

以前有没有人遇到过这样的问题,下面是代码片段和代码板上的一个示例

编辑: 例如:

代码片段,如果需要更多,请告诉我

$vCSVData = self::getCSVData($vPendingFilePath);

foreach ($vCSVData AS $vKey => $vValue)
{
     echo self::getNubmer($vValue);
     ...
}
getCSVData():

CSV文件片段:

Blue Table   
Green Chair  
Temp. Table   

事实证明,我认为空白实际上是ASCII 194个字符(多亏了MikeB)来解决这个问题,因为trim、rtrim、preg_替换、str_替换为正常的
(空白)检查不起作用,下面的代码片段对我来说是有效的

preg_replace("/[\xA0\xC2]/", "", "Table   ")
xA0是字符160,xC2是字符194

此外,在本例中,您可以使用以下语句使用trim,使用trim over preg_replace在处理时间上稍微快一点,也就是说,每种情况下的开销和差异都可以忽略不计,在我的情况下,这两种方法都足够了

trim("Table   ", "\xA0\xC2")
例如:

通过使用以下代码片段,我能够找到“空间”是什么:

var_dump(ord($vString{5}));

“我尝试过使用trim(),但它没有任何作用”-听起来你的代码有问题。我们必须能够重现这个问题。发布CSV的一个小样本将使这一点更容易做到。您的代码也可能会显示明显的问题(可能您正试图
修剪CSV文件中的整行内容)。有时,空格不是空格,而是制表符或许多其他字符中的一个。您之所以这样做,是因为您正在解析CSV?!使用正确的函数。有效的CSV可以具有跨多行的同一行-您当前的方法无法处理该行。@Atalon如果您使用了trim,但它不起作用,则说明您没有正确使用它,或者这些不是空格。抛开这个问题中关于CSV、API、上传等的所有内容,给我们一个铜板:提供一个带填充的字符串,以及trim如何不使用它。@derp,感谢大家的提醒,我更喜欢使用trim而不是preg_replace,因为trim的开销更小,即使在这两种情况下开销都非常小。
var_dump(ord($vString{5}));