CSV 中的字符串添加隐藏字符,因此在比较时,结果始终为 false

Strings from CSV adding hidden characters, so when comparing, result is always false

我正在从 CSV 文件中提取数据并与之进行比较

private function isCsvValid($fileLocation){
    $file = fopen($fileLocation, 'r');
    $line1 = fgetcsv($file);
    $isValid = $this->checkCorrectColumns($line1);
}


private function checkCorrectColumns($line){
    $columnsFound = array();

    foreach ($line as $value) {
       //comparisons here
       if($value == "GBPAUD"){

       }
    }

}

但是 CSV 字符串在

中有隐藏字符
    array(6) {
      [0]=> string(19) "363533840"
      [1]=> string(15) "GBPAUD"
      [2]=> string(47) "2007-12-02 17:00:33.000"
      [3]=> string(17) "2.326500"
      [4]=> string(17) "2.327400"
      [5]=> " string(5) "D
    }

我的字符串必须正确的字符数。

string(6) "GBPAUD"

我可以通过删除字母和数字以外的所有内容的正则表达式与 return 进行比较,这很棒。

/[^A-Za-z0-9]/

但这会删除浮点数中的 . 和日期等中的 -

每一位数据都有额外的字符。我宁愿不必为每个字符串都有一个片段尾部正则表达式。

谁能告诉我如何让字符串成为正确的位数?我在互联网上搜索,但 none 的建议有效(例如二进制安全比较,剥离 html 实体等...)

我是否可以删除所有字符串中的所有隐藏字符?

我找到了解决方案,使用这个正则表达式

$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $value);